工具:Eclipsejava
首先下载Mabatis所须要的jar包,导包mysql
而后配置mybatis核心文件取名mybatis.xmlweb
<?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> <properties resource="jdbc_mysql.properties"/> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理--> <transactionManager type="JDBC" /> <!-- 数据库链接池--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="User.xml"/> </mappers> </configuration>
而后配置链接数据库的资源文件,取名 jdbc_mysql.properties,取名要有意义spring
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8 jdbc.username=root jdbc.password=123
而后配置日志文件,也就是查询时输出SQL语句sql
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
而后建立一个实体User数据库
package cn.web.entity; 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 + "]"; } }
而后就是Mybatis关键的一步了配置实体映射的查询语句apache
<?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="cn.web"> <select id="findUserid" parameterType="int" resultType="cn.web.entity.User"> SELECT * FROM USER WHERE id = #{id} </select> <select id="findUname" parameterType="String" resultType="cn.web.entity.User"> SELECT * FROM USER WHERE username LIKE #{username} <!-- SELECT * FROM USER WHERE username LIKE concat('%',#{username},'%') --> <!-- SELECT * FROM USER WHERE username LIKE '%' #{username} '%' --> </select> <delete id="deleteByid" parameterType="int"> delete from User where id=#{id} </delete> <insert id="insert" parameterType="cn.web.entity.User"> <selectKey databaseId="id" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO USER (id,username,sex,birthday,address) VALUES (#{id},#{username},#{sex},#{birthday},#{address}) </insert> <update id="update" parameterType="cn.web.entity.User"> UPDATE USER SET username=#{username} WHERE id=#{id} </update> </mapper>
最后编写一个数据链接的MybatisUtil,用来链接数据库session
package cn.web.entity; 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; public class MyBatisUtil { private static SqlSessionFactory sqlSessionFactory; public static SqlSession getSqlSession(){ try { InputStream is = Resources.getResourceAsStream("mybatis.xml"); if(sqlSessionFactory == null){ sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); } return sqlSessionFactory.openSession(); } catch (IOException e) { e.printStackTrace(); } return null; } }
最后一步编写Test测试文件mybatis
package cn.web.entity; import java.io.InputStream; import java.util.Date; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test { @org.junit.Test public void testName() throws Exception { //mybatis配置文件 String resource ="mybatis.xml" ; //获得流对象 InputStream inputStream = Resources.getResourceAsStream(resource) ; //建立会话工厂 SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(inputStream); //经过会话工厂获得会话 SqlSession sqs= ssf.openSession(); //经过会话建立数据库 User user=sqs.selectOne("cn.web.findUserid",40); System.out.println(user); //List<User> list= sqs.selectList("cn.web.findUname", "张"+"%"); //sqs.insert("cn.web.insert",new User(40,"Make","2",new Date(),"珠海")); //sqs.update("cn.web.update", new User(40,"小杨",null,null,null)); //sqs.delete("cn.web.deleteByid",30); //SELECT LAST_INSERT_ID() sqs.commit(); //关闭会话 sqs.close(); } }
测试成功经过app