您的位置:首页 > 数据库

myBatis实现读写数据库

2017-12-25 10:01 323 查看
一、MyBatis:

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二、准备:

数据库结构:



使用maven添加相应的jar包:

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>


项目目录结构:



资源文件的conf.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>
<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/test" />
<property name="username" value="root" />
<property name="password" value="mysql" />
</dataSource>
</environment>
</environments>
</configuration>


实体类:User

/**
* @Title: User.java
* @Package com.king.model
* @Description: TODO
* @date 2017年12月25日 上午9:21:57
* @version V1.0
*/
package com.king.model;

public class User {

private int id;
private String username;
private String password;
private int age;

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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", age=" + age + "]";
}

}


映射文件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.king.mapping.userMapper">
<!-- 在select标签中编写查询的SQL语句,设置select标签的id属性为getUser,id属性必须唯一的,不能重复使用
parameterType属性指名查询时使用的参数类型,resultType属性指明查询返回的结果集类型
resultType="com.king.model.User"就表示将查询结果封装成一个User类的对象返回
User就是user表所对应的实体类 -->

<!-- 根据ID查询一个user对象 -->
<select id="getUser" parameterType="int" resultType="com.king.model.User">
select * from user where id=#{id}
</select>
</mapper>


然后配置conf.xml将映射加进去:

<mappers>
<!-- 注册userMapper.xml文件
userMapper.xml位于com.king.mapping这个包下,所以resource写成com/king/mapping/userMapper.xml
-->
<mapper resource="com/king/mapping/userMapper.xml"></mapper>
</mappers>


测试类,测试是否能够对数据库进行读写:

package com.king.test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.king.model.User;

public class Test {

public static void main(String[] args) {
String resource="conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = sessionFactory.openSession();
String statement = "com.king.mapping.userMapper.getUser";
User user = session.selectOne(statement,1);
System.out.println(user);
}
}


完整代码可以参考:

http://download.csdn.net/download/jsqfengbao/10171913
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息