[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.csdn.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); } }