一徐钠、在pom.xml里添加mybatis依賴以及MariaDB的驅(qū)動依賴
<dependencies>
<dependency>
<groupId>mariadb</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
二兵睛、在resource目錄下新建一個mybatis.xml
<?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節(jié)點
里面有配置信息 分別是環(huán)境和映射
其中環(huán)境里有datasource辆影,里面有我們熟悉的連接數(shù)據(jù)庫的四個字符串
-->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="org.mariadb.jdbc.Driver"/>
<property name="url" value="jdbc:mariadb://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="yutong19970820"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="BookMapper.xml"/>
</mappers>
</configuration>
三疾宏、在resource目錄下新建一個BookMapper.xml
<?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昭卓,
每個方法對應(yīng)自己的sql語句愤钾,每個sql語句對應(yīng)有一個id
整個項目中所有的namespace.id必須是唯一的
resultType:結(jié)果的數(shù)據(jù)類型
-->
<mapper namespace="BookMapper">
<select id="selectAllBook" resultType="com.qianfeng.bean.BookBean">
select * from springmvcbook
</select>
<select id="seletBookCount" resultType="int">
select count (1) from springmvcbook
</select>
<select id="saveBook" resultType="com.qianfeng.bean.BookBean">
insert into springmvcbook values (default,#{name},#{price})
</select>
</mapper>
在這個配置文件中寫SQL語句進(jìn)行查詢、增加等操作
resultType:結(jié)果的數(shù)據(jù)類型候醒,也可以填Javabean的路徑
每個方法對應(yīng)自己的sql語句能颁,每個sql語句對應(yīng)有一個id。id可以理解為方法名
在增加操作中倒淫,values() 中的屬性寫法為#{伙菊?},如#{name}
四敌土、創(chuàng)建一個圖書類BookBean
public class BookBean {
private int id;
private String name;
private double price;
public BookBean(int id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
public BookBean() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("BookBean{");
sb.append("id=").append(id);
sb.append(", name='").append(name).append('\'');
sb.append(", price=").append(price);
sb.append('}');
return sb.toString();
}
}
五镜硕、測試類,進(jìn)行數(shù)據(jù)的操作
原版:
public class BookTest {
@Test
public void getAllBook() {
try {
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession session = sf.openSession(true);
List<BookBean> list = session.selectList("BookMapper.selectAllBook");
for (BookBean bookBean : list) {
System.out.println(bookBean);
}
if (session!=null){
session.close();
session = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void getBookCount(){
try {
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession session = sf.openSession(true);
Integer count = session.selectOne("BookMapper.seletBookCount");
System.out.println(count);
if (session!=null){
session.close();
session = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void saveBook(){
try {
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession session = sf.openSession(true);
BookBean bookBean = new BookBean();
bookBean.setName("贅婿");
bookBean.setPrice(20.5);
int result = session.insert("BookMapper.saveBook",bookBean);
System.out.println(result);
if (session!=null){
session.close();
session = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
1返干、獲取全部圖書谦疾,存入List<>集合中,獲取時用session.selectList :session.selectList("BookMapper.selectAllBook");
2犬金、獲得圖書數(shù)量,用session.selectOne,且要用Integer
3晚顷、存入圖書峰伙,用session.insert
* 1. 使用mybatis的配置文件以及SqlSessionFactoryBuilder建造者模式創(chuàng)建SqlSessionFactory對象
* 2. 使用SqlSessionFactory對象的openSession()方法來得到一個SqlSession對象,用該對象即可完成對象的所有的crud操作
* 3. 使用SqlSession對象來完成crud操作
* 4. 關(guān)閉資源
簡化版:
public class BookTest2 {
private SqlSessionFactory sf = null;
private SqlSession session = null;
/**
* 1. 使用mybatis的配置文件以及SqlSessionFactoryBuilder建造者模式創(chuàng)建SqlSessionFactory對象
* 2. 使用SqlSessionFactory對象的openSession()方法來得到一個SqlSession對象该默,用該對象即可完成對象的所有的crud操作
* 3. 使用SqlSession對象來完成crud操作
* 4. 關(guān)閉資源
*
*/
@Before
public void setUp(){
try {
sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
session = sf.openSession(true);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void tearDown(){
if(session != null){
session.close();
session = null;
}
}
@Test
public void getAllBook() {
/**
* session的crud方法("namespace.id");整個項目中的namespace.id必須唯一
*/
List<BookBean> list = session.selectList("BookMapper.selectAllBook");
for (BookBean bookBean : list) {
System.out.println(bookBean);
}
}
@Test
public void getBookCount(){
Integer count = session.selectOne("BookMapper.seletBookCount");
System.out.println(count);
}
@Test
public void saveBook(){
BookBean bookBean = new BookBean();
bookBean.setName("贅婿");
bookBean.setPrice(20.5);
int result = session.insert("BookMapper.saveBook",bookBean);
System.out.println(result);
}
}