1.创建数据库
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
use 't_user'
INSERT INTO `t_user` VALUES ('1', '李洪刚', '20', '江阳区嘉裕花园3栋四楼15#');
INSERT INTO `t_user` VALUES ('2', '王云华', '30', '纳溪区大渡镇红鱼村三大队');
INSERT INTO `t_user` VALUES ('3', '郑小翠', '21', '江阳区老窖花园2栋五楼15号');
# 2.添加依赖
<font color="red"></font>
```java
<dependencies>
<!--https://mvnrepository.com/artifact/org.mybatis/mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!--https://mvnrepository.com/artifact/mysql/mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!--https://mvnrepository.com/artifact/junit/junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!--https://mvnrepository.com/artifact/log4j/log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2.添加依赖
Maven repository
< dependencies>
< ! -- https: / / mvnrepository. com/ artifact/ org. mybatis/ mybatis-- >
< dependency>
< groupId> org. mybatis< / groupId>
< artifactId> mybatis< / artifactId>
< version> 3.5 .6 < / version>
< / dependency>
< ! -- https: / / mvnrepository. com/ artifact/ mysql/ mysql- connector- java-- >
< dependency>
< groupId> mysql< / groupId>
< artifactId> mysql- connector- java< / artifactId>
< version> 5.1 .40 < / version>
< / dependency>
< ! -- https: / / mvnrepository. com/ artifact/ junit/ junit-- >
< dependency>
< groupId> junit< / groupId>
< artifactId> junit< / artifactId>
< version> 4.13 .2 < / version>
< scope> test< / scope>
< / dependency>
< ! -- https: / / mvnrepository. com/ artifact/ log4j/ log4j-- >
< dependency>
< groupId> log4j< / groupId>
< artifactId> log4j< / artifactId>
< version> 1.2 .17 < / version>
< / dependency>
< / dependencies>
3.创建实体类 user
package net. ty. mybatis. bean;
public class User {
private int id;
private String name;
private int age;
private String address;
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;
}
public String getAddress ( ) {
return address;
}
public void setAddress ( String address) {
this . address = address;
}
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}' ;
}
}
4.创建实体关系映射配置文件 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 = " net.ty.mybatis.mapper.UserMapper" >
< select id = " findById" parameterType = " int" resultType = " User" >
SELECT * FROM user WHERE id = #{id};
</ select>
< select id = " findAll" resultType = " User" >
SELECT * FROM user;
</ select>
</ mapper>
5.创建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>
< ! -- 配置实体类别名-- >
< typeAliases>
< typeAlias type= "net.ty.mybatis.bean.User" alias= "User" / >
< / typeAliases>
< 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/testdb" / >
< property name= "username" value= "root" / >
< property name= "password" value= "ccy123" / >
< / dataSource>
< / environment>
< / environments>
< mappers>
< mapper resource= "mapper/UserMapper.xml" / >
< / mappers>
< / configuration>
6.创建日志属性文件 log4j.propertis
log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
测试:
package net. ty. mybatis. bean;
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. After;
import org. junit. Before;
import org. junit. Test;
import java. io. IOException;
import java. io. Reader;
import java. util. List;
public class TestUserOperation {
private SqlSession session;
@Before
public void init ( ) {
try {
Reader reader = Resources. getResourceAsReader ( "mybatis-config.xml" ) ;
SqlSessionFactory factory = new SqlSessionFactoryBuilder ( ) . build ( reader) ;
session = factory. openSession ( ) ;
System. out. println ( "session对象已创建。" ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
@Test
public void testFindById ( ) {
int id = 1 ;
User user = session. selectOne ( "net.ty.mybatis.mapper.UserMapper.findById" , id) ;
if ( user != null) {
System. out. println ( user) ;
} else {
System. out. println ( "编号为[" + id + "]的用户未找到。" ) ;
}
}
@Test
public void testFindAll ( ) {
List< User> users= session. selectList ( "net.ty.mybatis.mapper.UserMapper.findAll" ) ;
for ( User user : users) {
System. out. println ( user) ;
}
}
@After
public void destroy ( ) {
session. close ( ) ;
System. out. println ( "session对象已关闭。" ) ;
}
}
(二)不使用MyBatis配置文件获取SQL会话对象:
1.接口——UserMapper
package net. ty. mybatis. mapper;
import net. ty. mybatis. bean. User;
import org. apache. ibatis. annotations. Select;
import java. util. List;
public interface UserMapper {
@Select ( "SELECT * FROM user WHERE id = #{id}" )
User findById ( int id) ;
@Select ( "SELECT * FROM user" )
List< User> findAll ( ) ;
}
2.创建用户数据源工厂——UserDataSource
package net. ty. mybatis. datacource;
import org. apache. ibatis. datasource. pooled. PooledDataSource;
import javax. sql. DataSource;
public class UserDataSourceFactory {
public static DataSource getUserDataSource ( ) {
return new PooledDataSource (
"com.mysql.jdbc.Driver" ,
"jdbc:mysql://localhost:3306/testdb" ,
"root" ,
"ccy123"
) ;
}
}
测试:
package net. ty. mybatis. mapper;
import net. ty. mybatis. bean. User;
import net. ty. mybatis. datacource. UserDataSourceFactory;
import org. apache. ibatis. session. Configuration;
import org. apache. ibatis. session. SqlSession;
import org. apache. ibatis. session. SqlSessionFactory;
import org. apache. ibatis. session. SqlSessionFactoryBuilder;
import org. apache. ibatis. transaction. TransactionFactory;
import org. apache. ibatis. transaction. jdbc. JdbcTransactionFactory;
import org. junit. After;
import org. junit. Before;
import org. junit. Test;
import org. apache. ibatis. mapping. Environment;
import javax. sql. DataSource;
import java. util. List;
public class TestUserMapperNew {
private SqlSession session;
private UserMapper userMapper;
@Before
public void init ( ) {
DataSource dataSource = UserDataSourceFactory. getUserDataSource ( ) ;
TransactionFactory transactionFactory = new JdbcTransactionFactory ( ) ;
Environment environment = new Environment ( "development" , transactionFactory, dataSource) ;
Configuration configuration = new Configuration ( environment) ;
configuration. addMapper ( UserMapper. class ) ;
SqlSessionFactory factory = new SqlSessionFactoryBuilder ( ) . build ( configuration) ;
session = factory. openSession ( ) ;
userMapper = session. getMapper ( UserMapper. class ) ;
System. out. println ( "session对象已创建。" ) ;
}
@Test
public void testFindById ( ) {
int id = 1 ;
User user = userMapper. findById ( id) ;
if ( user != null) {
System. out. println ( user) ;
} else {
System. out. println ( "编号为[" + id + "]的用户未找到。" ) ;
}
}
@Test
public void testFindAll ( ) {
List< User> users = userMapper. findAll ( ) ;
users. forEach ( user - > System. out. println ( user) ) ;
System. out. println ( ) ;
for ( int i = 0 ; i < users. size ( ) ; i++ ) {
System. out. println ( users. get ( i) ) ;
}
System. out. println ( ) ;
for ( User user : users) {
System. out. println ( user) ;
}
}
@After
public void destroy ( ) {
session. close ( ) ;
System. out. println ( "session对象已关闭。" ) ;
}
}