Mybatis入门案例

来源:互联网 发布:软件系统集成设计方案 编辑:程序博客网 时间:2024/04/30 18:46

数据库中的表的信息(User)字段:id:1 ,username:王五,birthday:null,sex:2,address:null;

实现的功能:根据id查询出用户

sqlMapConfig.xml(这是Mybatis的基础配置文件)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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事务管理--><transactionManager type="JDBC" /><!-- 数据库连接池--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><mapper resource="sqlmap\User.xml"/></mappers></configuration>
User.xml(这是一个映射文件)这里我们给出了SQL,但是并没有给出映射规则,因为这里我们使用的SQL列名和POJO的属性名保持一致。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.itcast.mybatis.first.UserMapper"><!-- 根据id获取用户 --><select id="findUserById" parameterType="int" resultType="cn.mybatis.po.User" >select * from user where id=#{id}</select></mapper>

log4j.properties

# Global logging configurationlog4j.rootLogger=DEBUG,stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

UserMapper.java(这是一个接口)

package cn.mybatis.first;import cn.mybatis.po.User;public interface UserMapper {public User findUserById(int id);}
MyBatisUtil.java(这是一个创建SqlSessionFactory的工具);

package cn.mybatis.first;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {private static SqlSessionFactory sqlSessionFactory = null;public static SqlSessionFactory getSessionFactory(){InputStream inputStream = null;if(sqlSessionFactory==null){try {String resource = "sqlMapConfig.xml";sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource));return sqlSessionFactory;} catch (Exception e) {System.err.println(e.getMessage());e.printStackTrace();}}return sqlSessionFactory;}}

User.java(这是一个javabean)

package cn.mybatis.po;import java.util.Date;public class User {private int id;private String username;private String sex;private Date birthday;private String 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;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="+ address + "]";}}

MyBatisExample.java(用MyBatis来实现的代码)

package cn.mybatis.first;import org.apache.ibatis.session.SqlSession;import cn.itcast.mybatis.po.User;public class MyBatisExample {public static void main(String[] args) {SqlSession sqlSession = null;sqlSession = MyBatisUtil.getSessionFactory().openSession();UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.findUserById(1);System.out.println(user.toString());}}
输出结果:
DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.DEBUG [main] - PooledDataSource forcefully closed/removed all connections.DEBUG [main] - PooledDataSource forcefully closed/removed all connections.DEBUG [main] - PooledDataSource forcefully closed/removed all connections.DEBUG [main] - PooledDataSource forcefully closed/removed all connections.DEBUG [main] - Opening JDBC ConnectionDEBUG [main] - Created connection 16218088.DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@f777e8]DEBUG [main] - ==>  Preparing: select * from user where id=? DEBUG [main] - ==> Parameters: 1(Integer)DEBUG [main] - <==      Total: 1User [id=1, username=王五, sex=2, birthday=null, address=null]

入门案例非常简单,但是对mybatis学习很重要。





0 0
原创粉丝点击