myBatis实现读写数据库

一、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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值