[mybatis]基本XML配置

首先是SqlMapConfig.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>
    <!-- 和spring整合后environments配置将移除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用JDBC事物管理,
                 事物控制由mybaties控制(和spring整合后就不是了) -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池,由mybaties控制(和spring整合后就不是了) -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="1234" />
            </dataSource>
        </environment>
    </environments>

    <!-- 加载映射文件 -->
    <mappers>
        <mapper resource="sqlmap/User.xml"/>
    </mappers>

</configuration>

映射文件的配置信息:

<?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 : 命名空间,作用就是对sql进行分类管理
    注意:使用mapper代理方法开发,namespace有重要特殊作用
 -->
<mapper namespace="text" >
    <!-- 在映射文件中可以配置很多sql语句 -->

    <!-- 
        通过select进行数据库查询
        id:标识映射文件的id,称为statement的id,
        将来sql语句会封装到mappdstatement对象中,所以称为statement的id

        parameterType:指定输入参数类型
        #{id}:表示一个占位符,其中的id表示接收输入的id,
               如果输入参数是简单类型,#{}中的参数可以任意

        resultType:指定sql输出结果的所映射的java对象类型,
                   select指定resultType表示将单条记录映射为Java对象
                   resultType="Bean.User":结果为Bean包下的User对象
    -->
    <select id="findUserById" parameterType="int" resultType="Bean.User">
        SELECT * FROM USER WHERE ID=#{id}
    </select>

</mapper>

Dao测试:

package dao;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import Bean.User;

public class UserDao {

    //根据ID查询用户信息,得到一条记录
    @Test
    public void selectUserById() throws IOException{
        //mybaties配置文件
        String resource = "SqlMapConfig.xml";
        //获取mybaties配置文件的流
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建会话工厂,传入mybaties的配置信息
        SqlSessionFactory sessionFactory = 
                new SqlSessionFactoryBuilder().build(inputStream);

        //创建一个session
        SqlSession session = sessionFactory.openSession();

        /**
         * 通过SqlSession操作数据库:
         * 第一个参数 : 映射文件中statement的id,格式:命名空间+"."+statement的id
         * 第二个参数 : 指定和映射文件中所匹配的parameterType类型的参数
         * session.selectOne()的结果就是与映射文件所匹配的resultType类型的对象
         */
        User user = session.selectOne("text.findUserById", 1);

        System.out.println(user);

        //释放SqlSession资源
        session.close();
    }
}

日志文件基本配置log4j.properties:

log4j.rootLogger=stdout,DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

实体Bean:

package Bean;

import java.util.Date;

public class User {
    private int id;
    //姓名
    private String username;
    //性别
    private String sex;
    //出生日期
    private Date birthday;
    //家庭住址
    private String address;


    public User() {
        super();
    }


    public User(int id, String username, String sex, Date birthday,
            String address) {
        super();
        this.id = id;
        this.username = username;
        this.sex = sex;
        this.birthday = birthday;
        this.address = address;
    }


    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 getSex() {
        return sex;
    }


    public void setSex(String sex) {
        this.sex = sex;
    }


    public Date getBirthday() {
        return birthday;
    }


    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }


    public String getAddress() {
        return address;
    }


    public void setAddress(String address) {
        this.address = address;
    }


    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", sex=" + sex
                + ", birthday=" + birthday + ", address=" + address + "]";
    }


}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值