參照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();
}
}
複製代碼