参照mybatis官方文档操做 www.mybatis.org/mybatis-3/z…html
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
复制代码
import com.javasm.mybatis.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
/**
* @author BI
* @date 2018/12/27 - 15:36
*/
public class MybatisTest {
/**
* 1.根据xml配置文件建立一个SqlSeessionFactory对象
* 2.
* @throws Exception
*/
@Test
public void testUser() throws Exception {
String resource = "conf/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取sqlSession实例,能直接执行已经映射的sql语句
SqlSession session = sqlSessionFactory.openSession();
//selectOne参数是mapper映射文件的selectId和要查询的数据库id
try {
User user = session.selectOne("selectUser", 1);
System.out.println(user);
}finally {
session.close();
}
}
}
复制代码
5.新建mybatis-config.xmljava
<?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"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
//指定mapper.xml映射文件
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
复制代码
6.新建mapper.xml文件,映射sql语句mysql
<?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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
复制代码
====================================sql
用接口的绑定方法获取数据(就是dao层和mapper映射文件绑定)数据库
1.新建一个接口,写入查询方法apache
public interface UserMapper {
User getUserById(int id);
}
复制代码
2.在mapper映射文件就行绑定,nameSpace="接口全类名",select id="接口内的方法名"bash
<?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.javasm.mybatis.UserMapper">
<select id="getUserById" resultType="com.javasm.mybatis.User">
select * from t_user where t_id = #{id}
</select>
</mapper>
复制代码
3.而后测试类这样写session
@Test
public void testUser2() throws Exception{
//使用Resources工具类获取配置文件资源
String resource = "config/mybatis-config.xml";
InputStream stream = Resources.getResourceAsStream(resource);
//使用SqlSessionFactoryBuilder的build方法经过配置文件获得SqlSessionFactory
SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(stream);
//从SqlSessionFactory中获取sqlSession实例
SqlSession session = sessionFactory.openSession();
try {
//经过session实例获取接口对象的实现类对象
UserMapper mapper = session.getMapper(UserMapper.class);
//根据返回的mapper调用查询方法,传入int类型的id,并返回查询的User对象
User user = mapper.getUserById(1);
System.out.println(user);
//修改,传入修改数据的id,执行更新方法
User user = new User(1, "张三", 69, "是见");
mapper.updateUser(user);
//添加,new一个User对象,经过有参构造设置参数,数据库id设为自增,因此id能够为null
User user = new User(null,"李四",65,"上海市");
mapper.addUser(user);
//删除,直接调用删除方法,传入删除id
mapper.deleteUser(2)
//手动提交
session.commit();
} finally {
session.close();
}
}
复制代码