mybatis配置步骤:
1、创建一个Maven工程
2、在pom.xml文件内添加jar包的依赖 也就是在标签下添加, 现成的jar依赖标签在网站mvnrepository.com内可以寻找,也可以在pom.xml的Dependencies中add添加jar包
需要在pom.xml中必须添加的依赖有:框架包mybatis3.4.3 == 数据库包mysql5.1.47==, 测试=junit 4.12-beta-1 选择添加日志打印包log4j1.2.17
3、创建Maven缺少的文件,(此处需要在src下创建哪些文件去搜索Maven骨架的创建步骤,必须创建的文件有main/java,main/resources,test/java)创建好后在main/resources目录下创建mybatis.xml框架配置文件,文件中分为开发部分和测试部分,均可在mybatis.xml的格式内容可以在网站mybatis入门上copy
如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 开发环境 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> 这里是数据库驱动 此处是mysql的驱动 <property name="url" value="jdbc:mysql://127.0.0.1/scott"/> 需要操作的数据库名 <property name="username" value="root"/> 用户名 <property name="password" value="a"/> 密码 </dataSource> </environment> <mapper resource="com/yc/mybatis/dao/DeptMapper.xml"/> <!-- 测试环境 --> <environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> </configuration>
4、创建实体类:
创建实体类先在main/java下创建如com.yc.mybatis的主包 然后再在com.yc.mybatis包下创建子包bean包和dao包,在com.yc.mybatis.bean下创建实体类 ,com.yc.mybatis.bean留于后用
实体类的具体创建此处不做过多阐述;
5、映射文件的编写:
在com.yc.mybatis.dao下创建一个映射文件DeptMapper.xml(名字可自取),而此配置文件的格式在mybatis入门网站上有:
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yc.mybatis.dao.DeptMapper"> 此处可为实体类的所在目录 也就是命名空间,自定义的 //查询 <select id="selectAll" resultType="com.yc.mybatis.bean.Dept"> resultType为转换的实体类型 id为命名方法 select * from dept </select> //插入 <insert id="insert"> insert into dept values(#{deptno},#{dname},#{loc}) 参数值需要用#{}来表示,里面的参数名与实体类一致即可 </insert> //更新 <update id="update"> update dept set dname=#{dname},loc=#{loc} where deptno=#{deptno} </update> //删除 <delete id="delete"> delete from dept where deptno=#{deptno} </delete> //查询 <select id="selectByNo" resultType="com.yc.mybatis.bean.Dept"> select *from dept where deptno=#{deptno} </select> </mapper> //注;select方法均需要在标签后加上resultType属性 而且必须在mybatis.xml内的映射标签下写入映射文件的路径如: <mappers> <mapper resource="com/yc/mybatis/dao/DeptMapper.xml"/> </mappers> 多个实体类的映射写法: <mappers> <mapper resource="com/yc/mybatis/dao/DeptMapper.xml"/> <mapper resource="com/yc/mybatis/dao/EmpMapper.xml"/> </mappers>
6、如需在每次操作数据库后打印查询结果,需要在main/resources下复制进入一个log4j.properties的日志文件
该文件代码为:
1
2
3
4
5
6log4j.rootLogger=ERROR, stdout log4j.logger.com.yc=TRACE //com.yc修改为需要打印日志的包名,其余不用修改 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
7、创建映射测试类:(用于测试的类)
在test/java里创建com.yc.mybatis.dao下在创建 如==DeptMapperTest.java ==
全局变量声明:
1
2
3
4
5
6
7
8
9
10private SqlSession session; @Before//before部分意思是先执行这部分在执行test部分,此部分为公共部分 public void before() throws IOException { String resource = "mybatis.xml";//此处为框架配置文件名 InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); session=sqlSessionFactory.openSession(true); }
8事务管理:
a、openSession(true);加true可以在执行完成后提交事务到数据库,否则不提交
b、不加true但又需要提交事务,可手动设置==session.commit()==在所有操作代码的末尾,如果整个事务过程某一处数据库操作发生错误,想要使得整个事务全部不提交,需要加try异常处理;
代码如下:
test部分写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29@Test//测试必须引入的包import junit.Test public void testTrans() { Dept dept=new Dept(); dept.setDeptno(60); dept.setDname("信息部"); dept.setLoc("广州"); try{ String path="com.yc.mybatis.dao.DeptMapper.insert"; session.insert(path,dept);//两个参数,第一个是字符串定义的方法,第二个是对象参 path="com.yc.mybatis.dao.DeptMapper.delete"; session.delete(path,60); path="com.yc.mybatis.dao.DeptMapper.selectByNo"; Dept dbdept=session.selectOne(path,60); Assert.assertEquals(dept.getDname(), dbdept.getDname()); session.commit();//此按钮作用为如果try全部执行成功 就提交事务 }catch(Exception e) { e.printStackTrace(); session.rollback();//如果有异常就回滚到第一步,所有的事务都不提交 }finally { session.close();//无论有无异常都会关闭session } }
Assert.assertEquals();及其重载方法:
a. 如果两者一致, 程序继续往下运行.
b. 如果两者不一致, 中断测试方法, 抛出异常信息 AssertionFailedError
运行测试代码即可验证mybatis的成功与否
最后
以上就是复杂钢笔最近收集整理的关于Mybatis的配置与映射文件的编写mybatis配置步骤:的全部内容,更多相关Mybatis内容请搜索靠谱客的其他文章。
发表评论 取消回复