MyBatis学习(一) MyBatis入门
[size=16px;]一.MyBatis上手[/size]
1.新建web项目
2.导入jar包
mybatis-3.4.0.jar
mysql-connector-java-5.1.27.jar
(注:jar包可以从这里下载:http://mvnrepository.com/)
3. 根据自己的习惯创建项目目录
4.数据库准备
示例采用mysql进行数据库测试
新建数据库:
mybatis
创建表:
create table users(id int PRIMARY key AUTO_INCREMENT,name VARCHAR(20),age int);
插入测试数据:
insert into users(name,age) values ('张三',25);
insert into users(name,age) values ('翠花',23);
insert into users(name,age) values ('李四',28);
5.添加mybatis配置文件
jdbcConnect.xml配置文件的内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.4//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis1"/> <property name="username" value="root"/> <property name="password" value="lyf241"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mybatis/mapper/usersMapper.xml"/> </mappers> </configuration>
mybatis的配置文件可以参考(引用:http://blog.****.net/etttttss/article/details/8902125)
6.创建表对应的实体
Users.java的代码:
package com.mybatis.entity;
import java.io.Serializable;
public class Users implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Integer age;
public Users() {
super();
}
public Users(Integer id, String name, Integer age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "users [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
7.创建user表对应的sql的映射文件usersMapper.xml
表sql的映射文件主要用来写跟表相关的一些操作(增删查改)
sersMapper.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.mapper.usersMapper">
<select id="getUsersById" parameterType="int" resultType="com.mybatis.entity.Users">
select * from users where id = #{id}
</select>
</mapper>
namespace 唯一,select 表示查询操作,id:唯一,parameterType查询参数的类型,resultType:查询结果返回的类型,这里com.mybatis.entity.Users表示返回的可以封装成users实体
8.测试
测试代码如下:
package com.mybatis.test;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.mybatis.entity.Users;
public class MyBatisTest {
@Test
public void selectUsers(){
//mybatis配置文件
String resource="com/mybatis/conf/jdbcConnect.xml";
//使用类加载器加载mybatis的配置文件
InputStream is = MyBatisTest.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行sql的session
SqlSession sqlSession = sessionFactory.openSession();
/**
* 映射Mapper的sql的字符串
* com.mybatis.mapper.usersMapper mapper配置文件的namespace
* getUsersById mapper文件中的标签的id
* namespace + 标签的id 唯一
*/
String statement = "com.mybatis.mapper.usersMapper.getUsersById";
Users users = sqlSession.selectOne(statement, 2);
System.out.println(users);
}
}