MyBatis基础入门《二》Select查询
使用MySQL数据库,创建表:
1 SET NAMES utf8mb4;
2 SET FOREIGN_KEY_CHECKS = 0;
3
4 -- ----------------------------
5 -- Table structure for tbl_client_copy1
6 -- ----------------------------
7 DROP TABLE IF EXISTS tbl_client_copy1;
8 CREATE TABLE tbl_client_copy1 (
9 id int(5) NOT NULL AUTO_INCREMENT,
10 client_name varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
11 client_address varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
12 client_birthday datetime NULL DEFAULT NULL,
13 PRIMARY KEY (id) USING BTREE
14 ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Compact;
15
16 SET FOREIGN_KEY_CHECKS = 1;
项目工程:
ClientMapper.xml
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
6 <mapper namespace="com.charles.dao.ClientMapper">
7
8 <!-- 查询数据库 -->
9 <select id="getCount" resultType="int">
10 SELECT COUNT(*) FROM tbl_client
11 </select>
12
13 </mapper>
TblClient.java
1 package com.charles.entity;
2
3 import java.io.Serializable;
4
5 public class TblClient implements Serializable {
6
7 private static final long serialVersionUID = -5993993584624176849L;
8
9 private Integer cid;
10 private String cname;
11 private String caddress;
12 private String cbirthday;
13
14 public TblClient() {
15 }
16
17 public Integer getCid() {
18 return cid;
19 }
20
21 public void setCid(Integer cid) {
22 this.cid = cid;
23 }
24
25 public String getCname() {
26 return cname;
27 }
28
29 public void setCname(String cname) {
30 this.cname = cname;
31 }
32
33 public String getCaddress() {
34 return caddress;
35 }
36
37 public void setCaddress(String caddress) {
38 this.caddress = caddress;
39 }
40
41 public String getCbirthday() {
42 return cbirthday;
43 }
44
45 public void setCbirthday(String cbirthday) {
46 this.cbirthday = cbirthday;
47 }
48
49 }
mybatis-config.xml
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
8 <!-- 引入database.properties文件 -->
9 <properties resource="properties/database.properties"></properties>
10
11 <!-- 配置mybatis的log实现log4j -->
12 <settings>
13 <setting name="logImpl" value="STDOUT_LOGGING" />
14 </settings>
15
16 <!-- 配置Mybatis的环境 -->
17 <environments default="development">
18 <environment id="development">
19 <!-- 配置事物管理 -->
20 <transactionManager type="JDBC" />
21 <dataSource type="POOLED">
22 <property name="driver" value="${jdbc.driver}" />
23 <property name="url" value="${jdbc.url}" />
24 <property name="username" value="${jdbc.username}" />
25 <property name="password" value="${jdbc.password}" />
26 </dataSource>
27 </environment>
28 </environments>
29
30 <!-- 将Mapper文件加入到mybatis的配置文件中 -->
31 <mappers>
32 <mapper resource="com/charles/dao/ClientMapper.xml" />
33 </mappers>
34
35
36 </configuration>
database.properties
这个是链接数据库的配置,未做改动,不在显示:见《Mybatis基础入门《一》环境搭建》
log4j.properties
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.charles=TRACE
# 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
JunitMybatisConfig.java
1 package com.charles.junit;
2
3 import static org.junit.Assert.fail;
4
5 import java.io.IOException;
6 import java.io.InputStream;
7
8 import org.apache.ibatis.io.Resources;
9 import org.apache.ibatis.session.SqlSession;
10 import org.apache.ibatis.session.SqlSessionFactory;
11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
12 import org.apache.log4j.Logger;
13 import org.apache.log4j.PropertyConfigurator;
14 import org.junit.Test;
15
16 public class JunitMybatisConfig {
17
18 @Test
19 public void test() {
20 fail("Not yet implemented");
21 }
22
23 @Test
24 public void testLog4j() {
25 PropertyConfigurator.configure("D:/DISK WORKSPACE/STS MAVEN/mybatis-base/src/main/resources/lo4j.properties");
26 Logger logger = Logger.getLogger(JunitMybatisConfig.class);
27 logger.debug(" debug ");
28 logger.error(" error ");
29 }
30
31 @Test
32 public void testMybaits() {
33
34 try {
35 /** 1.获取mybatis-config.xml文件 **/
36 String resource = "mybatis/mybatis-config.xml";
37 InputStream is = Resources.getResourceAsStream(resource);
38
39 /** 2.创建SQLSessionFactory对象 **/
40 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
41
42 /** 3.创建SQLSession **/
43 SqlSession session = sqlSessionFactory.openSession();
44
45 /** 4.输出SQLSession对象 **/
46 System.out.println(session);
47 } catch (IOException e) {
48 e.printStackTrace();
49 }
50 }
51 }
** 注意:**
** sqlSessionFactory.openSession(boolean autoCommit); 这里的openSession的方法中有一个boolean类型的参数。**
** true:关闭事物控制(默认)**
** false:开启事物控制**
JunitMybatisSelect.java
1 package com.charles.junit;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 import org.apache.ibatis.io.Resources;
7 import org.apache.ibatis.session.SqlSession;
8 import org.apache.ibatis.session.SqlSessionFactory;
9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 import org.junit.Test;
11
12 public class JunitMybatisSelect {
13
14 @Test
15 public void junitSelect() {
16 SqlSession session = null;
17 try {
18 /** 1.获取mybatis-config.xml文件 **/
19 String resource = "mybatis/mybatis-config.xml";
20 InputStream is = Resources.getResourceAsStream(resource);
21
22 /** 2.创建SQLSessionFactory对象 **/
23 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
24
25 /** 3.创建SQLSession **/
26 session = sqlSessionFactory.openSession();
27
28 /** 4.输出SQLSession对象 **/
29 System.out.println(session);
30 String resoruce = "com.charles.dao.ClientMapper.getCount";
31 int count = session.selectOne(resoruce);
32 System.out.println(count);
33
34 } catch (IOException e) {
35 e.printStackTrace();
36 } finally {
37 if(null != session) {
38 session.close();
39 }
40 }
41 }
42 }
注意:
String resource = "com.charles.dao.ClientMapper.getCount", 这个不是随便写的,这是由:ClientMapper.xml 文件中的namespace + select标签ID的值 组成。
SQLSession的使用方式有两种:
1. 通过SQLSession的实例直接运行映射的SQL语句。
2. 基于Mapper接口方式操作数据。
由于是初步搭建学习MyBatis,这里我使用的是第一种。一步一步的深入,后面会改成第二种方式。
pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>com.charles.mybatis</groupId>
5 <artifactId>mybatis-base</artifactId>
6 <version>0.0.1-SNAPSHOT</version>
7
8 <dependencies>
9 <dependency>
10 <groupId>junit</groupId>
11 <artifactId>junit</artifactId>
12 <version>4.11</version>
13 </dependency>
14 <dependency>
15 <groupId>log4j</groupId>
16 <artifactId>log4j</artifactId>
17 <version>1.2.17</version>
18 </dependency>
19 <!-- <dependency> -->
20 <!-- <groupId>org.slf4j</groupId> -->
21 <!-- <artifactId>slf4j-api</artifactId> -->
22 <!-- <version>1.7.7</version> -->
23 <!-- </dependency> -->
24 <!-- <dependency> -->
25 <!-- <groupId>org.slf4j</groupId> -->
26 <!-- <artifactId>slf4j-log4j12</artifactId> -->
27 <!-- <version>1.7.7</version> -->
28 <!-- </dependency> -->
29 <dependency>
30 <groupId>org.mybatis</groupId>
31 <artifactId>mybatis</artifactId>
32 <version>3.4.6</version>
33 </dependency>
34 <dependency>
35 <groupId>mysql</groupId>
36 <artifactId>mysql-connector-java</artifactId>
37 <version>5.1.29</version>
38 </dependency>
39 </dependencies>
40
41 </project>
如有问题,欢迎纠正!!!
如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9861099.html
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: