Skip to content

Commit f5b8e9a

Browse files
committedApr 8, 2020
mybatis demo
1 parent 3ab1c46 commit f5b8e9a

File tree

7 files changed

+178
-0
lines changed

7 files changed

+178
-0
lines changed
 

‎.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.idea/
2+
target/

‎pom.xml

+29
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,34 @@
88
<artifactId>basics</artifactId>
99
<version>1.0-SNAPSHOT</version>
1010

11+
<!-- 使用阿里云中心仓库 -->
12+
<repositories>
13+
<repository>
14+
<id>aliyun</id>
15+
<name>aliyun</name>
16+
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
17+
</repository>
18+
</repositories>
19+
<pluginRepositories>
20+
<pluginRepository>
21+
<id>aliyun</id>
22+
<name>aliyun</name>
23+
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
24+
</pluginRepository>
25+
</pluginRepositories>
26+
27+
<dependencies>
28+
<dependency>
29+
<groupId>org.mybatis.spring.boot</groupId>
30+
<artifactId>mybatis-spring-boot-starter</artifactId>
31+
<version>1.3.2</version>
32+
</dependency>
33+
<dependency>
34+
<groupId>mysql</groupId>
35+
<artifactId>mysql-connector-java</artifactId>
36+
<version>8.0.15</version>
37+
<scope>runtime</scope>
38+
</dependency>
39+
</dependencies>
1140

1241
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.limengxiang.basics;
2+
3+
import com.limengxiang.basics.dao.UserDAO;
4+
import com.limengxiang.basics.model.UserModel;
5+
import org.apache.ibatis.io.Resources;
6+
import org.apache.ibatis.session.SqlSession;
7+
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
8+
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.util.List;
12+
13+
public class MybatisDemo {
14+
public static void main(String[] args) {
15+
try {
16+
InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
17+
SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession(true);
18+
UserDAO userDAO = sqlSession.getMapper(UserDAO.class);
19+
// 插入数据
20+
Integer inserted = userDAO.insert("allen", "13356986723");
21+
System.out.println("Insert result:" + inserted);
22+
inserted = userDAO.insert("alfred", "13856986723");
23+
System.out.println("Insert result:" + inserted);
24+
25+
UserModel user = userDAO.selectOne("users", 1);
26+
System.out.println("Select one:" + user);
27+
28+
List<UserModel> users = userDAO.fuzzySearch("all%", "");
29+
System.out.println("Fuzzy search by username:" + users);
30+
31+
users = userDAO.fuzzySearch("", "133%");
32+
System.out.println("Fuzzy search by mobile:" + users);
33+
34+
35+
users = userDAO.fuzzySearch("all%", "133%");
36+
System.out.println("Fuzzy search by username and mobile:" + users);
37+
38+
users = userDAO.searchByUsernameOrMobile("all%", "135%");
39+
System.out.println("Search by username:" + users);
40+
41+
users = userDAO.searchByUsernameOrMobile("", "135%");
42+
System.out.println("Search by mobile:" + users);
43+
44+
} catch (IOException e) {
45+
e.printStackTrace();
46+
}
47+
48+
}
49+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.limengxiang.basics.dao;
2+
3+
import com.limengxiang.basics.model.UserModel;
4+
import org.apache.ibatis.annotations.Mapper;
5+
import org.apache.ibatis.annotations.Param;
6+
7+
import java.util.List;
8+
9+
@Mapper
10+
public interface UserDAO {
11+
12+
public Integer insert(@Param("username") String username, @Param("mobile") String mobile);
13+
14+
public UserModel selectOne(@Param("tableName") String tableName, @Param("id") Integer id);
15+
16+
public List<UserModel> fuzzySearch(@Param("username") String username, @Param("mobile") String mobile);
17+
18+
public List<UserModel> searchByUsernameOrMobile(@Param("username") String username, @Param("mobile") String mobile);
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.limengxiang.basics.model;
2+
3+
public class UserModel {
4+
private String username;
5+
private String mobile;
6+
7+
public String toString() {
8+
return "username:" + username +
9+
", mobile:" + mobile;
10+
}
11+
}
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper
3+
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4+
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5+
<!-- mapper:根标签,namespace:命名空间,也就是DAO类 -->
6+
<mapper namespace="com.limengxiang.basics.dao.UserDAO">
7+
<!-- 插入数据 -->
8+
<insert id="insert" parameterType="com.limengxiang.basics.model.UserModel">
9+
INSERT INTO users (username,mobile) VALUES (#{username}, #{mobile})
10+
</insert>
11+
<!-- 按主键ID查询 -->
12+
<select id="selectOne" resultType="com.limengxiang.basics.model.UserModel">
13+
SELECT * FROM ${tableName} WHERE id = #{id}
14+
</select>
15+
<!-- 动态SQL,当参数非空时模糊匹配 -->
16+
<select id="fuzzySearch" resultType="com.limengxiang.basics.model.UserModel">
17+
SELECT * FROM users
18+
<!-- 不用担心多余的AND -->
19+
<where>
20+
<if test="username!=null and username.trim()!=''">AND username LIKE #{username}</if>
21+
<if test="mobile!=null and mobile.trim()!=''">AND mobile LIKE #{mobile}</if>
22+
</where>
23+
</select>
24+
<!-- 动态SQL,类似switch语句 -->
25+
<select id="searchByUsernameOrMobile" resultType="com.limengxiang.basics.model.UserModel">
26+
SELECT * FROM users
27+
<where>
28+
<!-- 不用担心多余的AND -->
29+
<choose>
30+
<when test="username!=null and username.trim()!=''">
31+
AND username LIKE #{username}
32+
</when>
33+
<when test="mobile!=null and mobile.trim()!=''">
34+
AND mobile LIKE #{mobile}
35+
</when>
36+
</choose>
37+
</where>
38+
</select>
39+
</mapper>

‎src/main/resources/mybatis-config.xml

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE configuration
3+
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4+
"http://mybatis.org/dtd/mybatis-3-config.dtd">
5+
<!-- 根标签 -->
6+
<configuration>
7+
<properties>
8+
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
9+
</properties>
10+
11+
<!-- 环境,可以配置多个,default:指定采用哪个环境 -->
12+
<environments default="development">
13+
<!-- id:唯一标识 -->
14+
<environment id="development">
15+
<!-- 事务管理器,JDBC类型的事务管理器 -->
16+
<transactionManager type="JDBC" />
17+
<!-- 数据源,池类型的数据源 -->
18+
<dataSource type="POOLED">
19+
<property name="driver" value="${driver}" /> <!-- 配置了properties,所以可以直接引用 -->
20+
<property name="url" value="jdbc:mysql://172.168.0.92:3306/mybatis_demo"/>
21+
<property name="username" value="root"/>
22+
<property name="password" value="123456"/>
23+
</dataSource>
24+
</environment>
25+
</environments>
26+
27+
<mappers>
28+
<mapper resource="mapper/UserMapper.xml" />
29+
</mappers>
30+
</configuration>

0 commit comments

Comments
 (0)