概述
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
如下
<?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入门网站上有:
如下:
<?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的日志文件
该文件代码为:
log4j.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 ==
全局变量声明:
private 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部分写法
@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的配置与映射文件的编写mybatis配置步骤:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复