MyBatis初识

来源:互联网 发布:js实现日期时间 编辑:程序博客网 时间:2024/06/05 03:24

什么是MylBatis?

mybatis是一个持久层框架

持久化:

数据从瞬时状态变为持久状态

持久层:

完成持久化工作的代码块

MyBatis就是帮助程序员将数据存入数据库,和从数据库中取数据

传统的JDBC操作:

有很多重复代码块,比如:数据取出封装,数据库建立连接等,通过框架减少代码重复,提高开发效率

MyBatis是一个半自动的ORM(对象关系映射)框架

所需jar

asm-4.2.jar
cglib-3.1.jar
commons-logging-1.2.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.2.jar
log4j-core-2.2.jar
mysql-connector-java-5.1.20-bin.jar
slf4j-api-1.7.12.jar
slf4j-log4j12-1.7.12.jar

简单案例:

创建实体类User  bean:

package entity;public class User {private int id;private String name;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

编写sql语句的映射文件 :

<?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="entity.userMapper"><select id="selectUser" resultType="entity.User">select * from user where id=#{id}</select><insert id="addUser">insert into user(name,pwd) values(#{name},#{pwd});</insert></mapper>

持久层:

package dao;import org.apache.ibatis.session.SqlSession;import util.MyBatisUtil;import entity.User;public class UserDao {public User getById(int id) throws Exception{SqlSession session =MyBatisUtil.getSession();User user=session.selectOne("entity.userMapper.selectUser",1);return user;}public int add(User user) throws Exception{SqlSession session =MyBatisUtil.getSession();int result=session.insert("entity.userMapper.addUser");session.close();return result;}}

MyBatis工具类(创建SqlSessionFactory类):

package util;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;//创建sqlSessionFactory以及获得sqlSessionpublic class MyBatisUtil {public static SqlSessionFactory getSqlSessionFactory() throws Exception {String resource = "mybatis.cfg.xml";InputStream inputstream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(inputstream);return sqlsessionfactory;}public static SqlSession getSession() throws Exception {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();return sqlSessionFactory.openSession();}}

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> <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="root" />              </dataSource>          </environment>      </environments>         <mappers><mapper resource="entity/userMapper.xml"/></mappers>  </configuration>

测试类:

package test;import org.apache.ibatis.session.SqlSession;import entity.User;import util.MyBatisUtil;public class test {public static void main(String[] args) throws Exception {SqlSession session =MyBatisUtil.getSession();User user=session.selectOne("entity.userMapper.selectUser",1);
//select("包名.sqlID名称",参数)System.out.println("id"+user.getId()+",name="+user.getName());session.close();}}

 





0 0
原创粉丝点击