1.mybatis的优点:
mybatis相对于jdbc,代码量缩减一半,易懂,适合新手;
不用考虑公共部分;
专心在业务上实现;
结构统一,易于学习和维护
2.xml简单流程
新建一个SqlSessionFactoryBuilder的对象 builder;
在调用Resources时,注意这里选择的是(org.apche.ibatis.io)
用Resources.getResoucesAsReader来存放接口下面的.xml文件;
builder调用build方法,把资源添加进去,形成一个工厂;
再用工厂.OpenSession 打开会话,
3.下面就详细来实现mybatis
1.添加hamecast,junit,mybatis,sql的几个jar包,不然在.xml文件中不能实现
2.建一个资源文件夹,选择resource root类型,里面添加一个文件db.properties,这个文件存放的是连接数据库的资源,同时在和resours文件夹同级的再建一个文件test,类型选择test resource root
3. 创建一个类,里面的属性和表的列名一致;
4.创建一个接口,写增删改查等方法,注意多个方法时,类型都是String,所以参数前要加入@Param 来识别相同的参数
5.mybatis.xml文件,里面大概实现的流程,里面设置开发环境;事务管理器;数据连接池;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTDConfig 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration >
<properties resource="db.properties"/>
<environments default="dev">
<environment id="dev">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${name}"></property>
<property name="password" value="${pwd}"></property>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/kgc/dao/UserDao.xml"></mapper>
</mappers>
</configuration>
6. UserDao.xml文件,
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.kgc.dao.UserDao">
<select id="getUserByName" parameterType="string"
resultType="cn.kgc.entity.User">
select *from tb_user_info where username=#{name}
</select>
<select id="addUser" parameterType="string">
insert into tb_user_info (username, password) values (#{name},#{pwd})
</select>
<select id="delUser" parameterType="string">
delete from tb_user_info where username=#{name}
</select>
<select id="updateUser" parameterType="string">
update tb_user_info set password=#{pwd} where username=#{name}
</select>
</mapper>
7.接口里的方法 用ctrl+shift+t来创建一个test
public class UserDaoTest {
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
Reader reader = Resources.getResourceAsReader( "mybatis-cfg.xml" );
SqlSessionFactory factory = builder.build( reader );
SqlSession session = factory.openSession(true); //加true开启自动提交
public UserDaoTest() throws IOException {
}
@Test
public void getUserByName() throws Exception {
User user = session.getMapper( UserDao.class ).getUserByName( "1" );
System.out.println(user);
}
@Test
public void addUser() {
session.getMapper( UserDao.class ).addUser("吸烟有害健康" ,"12" );
}
@Test
public void delUser() {
session.getMapper( UserDao.class ).delUser( "吸烟有害健康","12" );
}
@Test
public void updateUser() {
session.getMapper( UserDao.class ).updateUser( "lisi","12" );
}
}