搭建MyBatis工作環境以及增刪改查基本操作
阿新 • • 發佈:2018-08-07
read generated artifact this close sco del url eal
數據庫準備
創建一個數據庫為mybatus-test,表為user
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; insert into `user`(`id`,`name`,`age`) values (1,‘李三‘,18),(2,‘張三‘,25);
搭建環境
使用idea開發,所有考慮使用maven來管理項目,下面是pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.Bobi</groupId> <artifactId>Bobi</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <!-- mysql驅動包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- junit測試包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- 日誌文件管理包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency> </dependencies> </project>
接著再加個日誌輸出環境配置文件,log4j.properties文件如下
各個元素得具體作用是什麽,可以自行了解一下,這裏就不多言啦
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
為了體現所謂得不硬編碼,所有加個數據庫配置文件吧,sql.properties
根據自己得用戶名和密碼改一改
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test
jdbc.username=root
jdbc.password=123456
前面寫了那麽多配置文件,下面終於寫mybatis的配置文件啦,mybatis-config.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>
<properties resource="mysql.properties"/>
<settings>
<!--全局性設置懶加載。如果設為‘false’,則所有相關聯的都會被初始化加載,默認值為false-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--當設置為‘true’的時候,懶加載的對象可能被任何懶屬性全部加載。否則,每個屬性都按需加載。默認值為true-->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<typeAliases>
<!-- 其實就是將bean的替換成一個短的名字-->
<typeAlias type="com.bobi.po.User" alias="User"/>
</typeAliases>
<!--對事務的管理和連接池的配置-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED"><!--POOLED:使用Mybatis自帶的數據庫連接池來管理數據庫連接-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--mapping文件路徑配置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
以上的配置文件視人而異吧!大概就是這樣子啦!!!!
編寫sql映射配置文件
數據庫中就一張表,現在就拿這張表來普通查詢,模糊查詢,增加,修改,刪除操作
實體類User.java
package com.bobi.po;
public class User {
private int id;
private String name;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
映射文件UserMapper.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="com.bobi.po.User">
<!--下列的id必須唯一的-->
<insert id="insertUser" parameterType="com.bobi.po.User" useGeneratedKeys="true">
INSERT INTO USER(name,age) VALUES(#{name},#{age})
</insert>
<update id="updateUsername" parameterType="com.bobi.po.User">
UPDATE USER SET name=#{name} WHERE id=#{id}
</update>
<delete id="deleteUser" parameterType="java.lang.Integer">
DELETE FROM USER WHERE id=#{id}
</delete>
<select id="findById" parameterType="int" resultType="com.bobi.po.User">
SELECT * FROM User WHERE id=#{id}
</select>
<select id="findUserByUsername" parameterType="java.lang.String" resultType="com.bobi.po.User">
SELECT * FROM USER WHERE name LIKE ‘%${value}%‘
</select>
</mapper>
在這裏值得註意一下的是平時可能會遇到如下的錯誤
如果有遇到如圖中的問題,根據圖中的提示修改就可以啦
最後一個就是編寫w測試類了,在src\main\java中編寫一個UserTest.java
package com.bobi.test;
import com.bobi.po.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 java.io.IOException;
import java.io.Reader;
import java.util.List;
public class UserTest {
public static void main(String[] args) {
String resoure="mybatis-config.xml";
Reader reader=null;
try {
reader= Resources.getResourceAsReader(resoure);
//創建會話工廠。傳入MyBatis配置文件信息
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
//通過會話工廠創建會話session
SqlSession session=sqlSessionFactory.openSession();
//通過id查詢用戶
User user=session.selectOne("findById",2);
System.out.println(user.getName());
System.out.println(user.getAge());
//通過模糊查詢查含有“三”字的用戶,並存於一個list列表中
List<User> list=session.selectList("findUserByUsername","三");
for (int i=0;i<list.size();i++){
User user1=list.get(i);
System.out.println(user1.getName());
System.out.println(user1.getAge());
}
//新增一個用戶
User user2=new User();
user2.setName("王五");
user2.setAge(28);
session.insert("insertUser",user2);
//刪除一個用戶
session.delete("deleteUser",6);
//更改一個用戶,將id為5的用名字改為孫儷
User user3=new User();
user3.setId(5);
user3.setName("孫儷");
session.update("updateUsername",user3);
session.commit();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
OK,基本完成啦!下面是項目的GitHub的鏈接: [MybatisFirstDemo][1]
[1]: https://github.com/MyBobi/MyBatisFirstDemo
搭建MyBatis工作環境以及增刪改查基本操作