MyBatis入门-基本配置和查询
1、创建基本的Java web工程
2、导入依赖的jar包,这里只有两个必须的Jar「这里使用的是MySql数据库」。
mybatis-3.4.4.jar mybatis核心jar包
'mysql-connector-java-5.0.8-bin.jar MySql JDBC驱动包
3、在src根目录创建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="jdbc.properties">
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zhxiong/empty/mapper/UserMapper.xml" />
</mappers>
</configuration>
4、在src根目录创建jdbc.properties文件,以供mybatis-config.xml文件使用,具体的内容如下所示:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/testDB
username=root
password=root
5、创建实体类User.java并创建对应的数据库对象,代码如下所示:
package com.zhxiong.empty.bean;
public class User {
private Long id;
private String userName;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password=" + password + "]";
}
}
数据库创建代码如下:
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`password` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`user_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
6、定义Mapper接口UserMapper.java,代码如下所示:
package com.zhxiong.empty.mapper;
import com.zhxiong.empty.bean.User;
public interface UserMapper {
User getUser(Long id);
}
7、编写映射文件,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.zhxiong.empty.mapper.UserMapper">
<select id="getUser" resultType="com.zhxiong.empty.bean.User">
select id,user_name userName,password from sys_user where id = #{id}
</select>
</mapper>
8、在全局配置中引入映射文件,具体看上面的全局配置文件。
9、编写测试。代码如下:
package com;
import java.io.IOException;
import java.io.InputStream;
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.Test;
import com.zhxiong.empty.bean.User;
import com.zhxiong.empty.mapper.UserMapper;
public class AppTest {
@Test
public void myBatisTest() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = session.selectOne("com.zhxiong.empty.mapper.UserMapper.getUser", 1);
User user2 = mapper.getUser(1L);
System.out.println(user);
System.out.println(user2);
session.commit();
session.close();
}
}