当前位置: 首页 > 后端技术 > Java

MyBatis-启动

时间:2023-04-01 16:48:45 Java

Mybatis:一个简化sql操作的持久层框架。开发只需要关注具体的sql语句即可。传统JDBC:1.操作sql2.操作Connection、Statment(向数据库发送sql的对象)、ResultSet等ORM框架:对象-关系匹配,将关系数据库中的数据转换为面向对象程序中的对象hibernate(自动sql)和mybatis(自定义sql)1.在pom中引入依赖mybais只要这个依赖完成org.mybatismybatis3.4.6但是需要操作数据库,所以引入连接数据库驱动mysqlmysql-connector-java8.0.26添加测试类依赖,用于测试junitjunit4.12test2.mybatis.xml编写myBatis核心配置文件(放在资源目录下)<环境id="development">3.pom引入mapper.xml为了能够加载到java文件夹下的mapper的xml文件src/main/java**/*.xml4.编写java代码pojo/mapper/testUserpublicclassUserimplementsSerializable{privateLongid;私有字符串名称;私有整数点;私人字符串电话;私人时间戳regTime;publicUser(Longid,Stringname,Integerpoints,Stringphone,TimestampregTime){this.id=id;this.name=名称;this.points=点数;this.phone=电话;this.regTime=regTime;}publicUser(){}}UserMapperpublicinterfaceUserMapper{voidadd(Useruser);voiddeleteById(Longid);无效更新(用户用户);ListselectAll();}UserMapper.xml<;?xmlversion="1.0"encoding="UTF-8"?>插入`user`(`name`,`phone`,`regTime`)值(#{name},#{phone},#{regTime})从`user`whereid=#{id}中删除更新`user`集合`name`=#{name},`phone`=#{phone},`regTime`=#{regTime}select*from`user`TestpublicclassTestUser{UserMappermapper=null;SqlSessionsqlSession=null;@Before//为了获取sqlSessionpublicvoidinit()throwsIOException{//Resources:mybatis提供的文件流读取工具InputStreamresourceAsStream=Resources.getResourceAsStream("mybatis.xml");//实例化一个构建器SqlSessionFactoryBuilderbuilder=newSqlSessionFactoryBuilder();//获取一个builderFactory对象SqlSessionFactoryfactory=builder.build(resourceAsStream);//通过openSession获取session对象,默认是手动提交事务//SqlSession提供了在数据库中执行SQL命令所需的所有方法sqlSession=factory.openSession();//获取mapper接口的代理对象mapper=sqlSession.getMapper(UserMapper.class);}@Testpublicvoidadd(){时间戳timestamp=newTimestamp(System.currentTimeMillis());用户user=newUser("测试",0,"7898",时间戳);//获取代理对象,然后调用方法mapper.add(user);//sqlSession自带的方法也有增删改查。语句参数(第一个参数)必须和接口中的方法名一致sqlSession.insert("add",user);sqlSession.commit();}@TestpublicvoiddeleteById(){mapper.deleteById(37L);sqlSession.commit();}@Testpublicvoidupdate(){时间戳timestamp1=newTimestamp(System.currentTimeMillis());用户user1=newUser(44L,"测试4",0,"+65+6565+",timestamp1);sqlSession.update("更新",user1);sqlSession.commit();}@TestpublicvoidselectAll(){Listmaps=mapper.selectAll();System.out.println(maps.size());for(Mapmap:maps){System.out.println(map);}}}遇到的坑:1.没有spring管理的时候,如果要mapper对象,需要自己创建sqlSession2。pom文件中没有引入xml,UserMapper.xml的错误标签配置分析报错:mappers:mapper,将UserMapper.xml文件中的配置映射到具体的Mapper.xml文件中namespace:用于绑定Dao接口...environments:环境配置集合可以配置多个数据库environment:环境配置具体实现连接池:服务器一次创建多个数据库连接,保存多个连接池中的连接权图中,下次有请求操作数据库时,直接从连接池中获取一个连接,使用后不关闭,继续放回连接池中,可以节省创建资源/releasingconnections//default:developmentdevelopmentmodework工作模式//id:指定当前环境的唯一标识//transactionManager:事务管理器类型:JDBC-使用JDBC原生的事务管理方式,提交和回复Rolling需要手动完成:属性,connect连接驱动,url,用户名,密码四大块//useSSL:使用SSL协议保证数据安全和正确性,默认为true"/>