标签:节点 actor win web项目 文件 自动 持久化 etl 直接
MyBatis是一个ORM数据持久层框架
它在内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射
将SQL语句写在配置文件中,和程序分离,利于维护
ORM(Object Relational Mapping)是对象到数据库表的映射,即数据持久化
1. 配置上Tomcat
Window——pereferences——server——runtime Environment
2. 配置Server
Window——show view——servers
选择阿帕奇的tomcat7,然后就可以添加项目到tomcat
3. 创建动态web项目
选择创建项目Dynamic web project
1. 导入MyBatis的jar
log4j-1.2.17.jar——日志记录
mybatis-3.2.2.jar——核心包
mybatis-3.2.2-sources.jar——源码包MyBatis
mysql-connector-java-5.1.0-bin.jar——mysql驱动
有四个,直接放lib下即可
配置config和mapper的DTD,让文件自动联想(自动提示)
在项目下面创建一个和src同级的文件夹resources
1. 导入mybatis-config.xml (MyBatis核心配置文件)
在 settings 节点下创建 typeAliases
<typeAliases>
<!-- 一般都直接指定包名。使用时直接写实体类的名称即可 -->
<package name="com.xxx.pojo"/>
</typeAliases>
在最下面的mappers节点中创建mapper节点,将mapper文件加载到配置文件中(每个mapper文件都需要配置一下)
<mappers> <mapper resource="com/xxx/dao/UserMapper.xml" /> </mappers>
2. 导入database.properties
database.properties文件用来指定连接数据库的配置信息
3. 导入log4j.properties
error:将日志输出在外部文件
4.创建工具类util
将(核心代码)读取配置文件的操作封装起来
创建MyBatisUtil工具类
public class MyBatisUtil { //使用单例方式创建factory对象 private static SqlSessionFactory factory=null; //在静态块中初始化factory对象 static { //读取配置文件,需要用io流来读取 InputStream is; try { //getResourceAsStream 按照访问输出流的方式获取资源 //参数就是要读取的资源 is = Resources.getResourceAsStream("mybatis-config.xml"); //创建SqlSessionFactory对象 factory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 开启会话 public static SqlSession openSqlSession() { return factory.openSession(true); } // 关闭会话 public static void closeSqlSession(SqlSession session) { session.close(); } }
5. 创建实体类pojo
6.在dao中创建接口
接口的方法的名称必须和mapper.xml的对应的SQL语块的id一样
7.在dao中创建mapper.xml配置文件
在根节点mapper中,添加属性namespace
namespace:命名空间
namespace指定接口类的位置和名称(代表映射文件的存放位置,关联绑定接口)
添加增删改查语句
8.创建测试用例类test
未把核心代码封装到工具类的demo
1 //每个方法都必须加上@Test注解 2 @Test 3 public void test_Demo_01() { 4 //将SqlSession对象创建到外层 5 SqlSession session=null; 6 try { 7 //读取配置文件,需要用io流来读取 8 //getResourceAsStream 按照访问输出流的方式获取资源 9 //参数就是要读取的资源 10 InputStream is=Resources.getResourceAsStream("mybatis-config.xml"); 11 //创建SqlSessionFactory对象,读取配置文件 12 //SqlSessionFactory 就代表sqlsession的工厂 13 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is); 14 //创建sqlsession对象 15 //openSession 打开会话,true默认自动提交事务 16 session = factory.openSession(true); 17 18 //调用mapper中的select方法 19 //selectOne 表示只查询了一个数 20 int count=session.selectOne("com.xxx.dao.UserMapper.UserCount"); 21 22 //输出查询出来的结果 23 System.out.println("总行数是:"+count); 24 } catch (IOException e) { 25 // TODO Auto-generated catch block 26 e.printStackTrace(); 27 }finally { 28 //如果session不是空,则关闭 29 if(session!=null) { 30 session.close(); 31 } 32 } 33 }
使用封装类后的demo
@Test //这是使用工具类的示例 public void test_Demo_02() { //将SqlSession对象创建到外层 SqlSession session=null; try { //将读取配置文件的代码封装到了工具类,所以用它创建session即可 session = MyBatisUtil.openSqlSession(); //调用mapper中的select方法 //selectOne 表示只查询了一个数 int count=session.selectOne("com.xxx.dao.UserMapper.UserCount"); //输出查询出来的结果 System.out.println("总行数是:"+count); }finally { //释放资源 MyBatisUtil.closeSqlSession(session); } }
将结果输出到日志中
//在方法外部获取日志,减少创建 private Logger logger = Logger.getLogger(test01.class); //将把日志保存外部文件中,其他的方法都不会保存到外部文件 logger.error(user);
使用Mapper接口方式操作数据
//使用Mapper接口方式操作数据,需要指定一个接口类 //然后.它相应的方法 List<User> users=session.getMapper(UserMapper.class).userList();
标签:节点 actor win web项目 文件 自动 持久化 etl 直接
原文地址:https://www.cnblogs.com/buhuang-/p/10111582.html