项目构成:
- 配置文件
- 实体类
- 映射文件
- 测试类
- 接口文件
- 依赖包
配置文件
- 配置类的别名
- 数据库连接配置
关联映射文件
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> <!-- type就是完整实体类名, --> <typeAlias type="com.wsk.test.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/db_ke" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <!-- 关联映射文件 --> <mapper resource="com/wsk/test/UserMapper.xml"/> </mappers> </configuration>
实体类
javabean
User.java
package com.wsk.test; public class User { int id; String username; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String toString(){ return id+"--"+username; } }
映射文件
- 实体类和表映射
数据库操作
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"> <!-- 指定唯一的namespace,惯例是包名+文件名--> <mapper namespace="com.wsk.test.UserMapper"> <!-- 类与表映射配置 --> <resultMap id="user_table" type="User"> <id property="id" column="id"/> <result property="username" column="name"/> </resultMap> <!-- 查询操作 --> <select id="getUser" parameterType="int" resultMap="user_table"> select * from user where id=#{id} </select> <!-- 创建表--> <update id="createUserTable"> create table user( id int(6), name varchar(10), primary key (id) ) </update> </mapper>
测试类
先在数据库中创建user表和相应数据
Test1.java
package com.wsk.test; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test1 { public static void main(String[] args) throws IOException { //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件) InputStream is = Test1.class.getClassLoader().getResourceAsStream("conf.xml"); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); // session.update("com.wsk.bean.UserMapper.createUserTable"); String statement = "com.wsk.test.UserMapper.getUser";//映射sql的标识字符串 //执行查询返回一个唯一user对象的sql User user = session.selectOne(statement, 11); System.out.println(user.toString()); } }
接口文件
与映射文件名一致
UserMapper.java
package com.wsk.test; public interface UserMapper { public User getUser(int id); }
测试类
package com.wsk.test; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test1 { public static void main(String[] args) throws IOException { //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件) InputStream is = Test1.class.getClassLoader().getResourceAsStream("conf.xml"); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); UserMapper mapper=session.getMapper(UserMapper.class); User user=mapper.getUser(11); System.out.println(user.toString()); } }