什么是 MyBatis?
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
下面我们来使用MyBatis框架实现简单的数据表的增删改查功能
首先编写数据库表所对应的Javabean,注意Javabean里面的值要与数据库表里面的字段相对应
public class User {
public int id;
public String name;
public String clas;
public String phone;
public String wedurl;
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 getClas() {
return clas;
}
public void setClas(String clas) {
this.clas = clas;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getWedurl() {
return wedurl;
}
public void setWedurl(String wedurl) {
this.wedurl = wedurl;
}
}
第二步开始编写实现数据库操作接口
package com.zhiyuan.com;
import java.util.List;
public interface IUser {
//增加
public int Insert(User ure);
//删除
public int Delete(int id);
//根据id进行条件查询
public User Where(int id);
//查询整张表
public List<User> Select();
//修改数据表里面的数据
public int Update(User user);
}
第三步编写XML配置文件(在这里面编写数据操作的SQL语句,注意每一条数据库操做的id必须与接口里面的方法名相对应)
第三步编写主配置xml文件<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" > <!-- 注意这里面namespace的值要填写接口所对应的路径 --> <mapper namespace="com.zhiyuan.com.IUser"> <insert id="Insert" parameterType="User"> INSERT INTO user (id,name,clas,phone,wedurl)VALUES(#{id},#{name},#{clas},#{phone},#{wedurl}) </insert> <delete id="Delete" parameterType="int"> DELETE FROM user WHERE id=#{id} </delete> <select id="Where" parameterType="User" resultType="com.zhiyuan.com.User"> SELECT * FROM user WHERE id=#{id}; </select> <select id="Select" resultType="com.zhiyuan.com.User"> SELECT * FROM user </select> <update id="Update" parameterType="User"> UPDATE USER SET name= #{name}, clas = #{clas}, wedurl = #{wedurl}, phone = #{phone} WHERE id = #{id} </update> </mapper>
第四步编写测试类<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD config 3.0//EN" "mybatis-3-config.dtd" > <configuration> <typeAliases> <typeAlias type="com.zhiyuan.com.User" alias="User" /> </typeAliases> <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://127.0.0.1:3306/loop" /> <property name="password" value=" " /> <property name="username" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/zhiyuan/com/User.xml" /> </mappers> </configuration>
public class Mapping { public static SqlSessionFactory sty; public static void main(String[] args) throws IOException { // 读取xml配置文件 Reader re = Resources.getResourceAsReader("config.xml"); // 得到SqlSessionFactory工厂对象 sty = new SqlSessionFactoryBuilder().build(re); // 得到sqlsession对象 SqlSession op = sty.openSession(); // 使用sqlsession对象变相实例化IUser接口 IUser oop = op.getMapper(IUser.class); Update(oop); op.commit(); } // 增加 public static void insert(IUser i) { User user = new User(); user.setId(8); user.setName("不将就"); user.setPhone("1743578"); user.setClas("往事随风"); user.setWedurl("www.yishiwuzhong.com"); i.Insert(user); } // 删除 public static void Delete(IUser i) { int id = 5; i.Delete(id); } // 条件查询 public static void Where(IUser i) { int id = 8; User user = i.Where(id); System.out.println(user.id); } // 查询整张表 public static void Select(IUser i) { System.out.println("Test Get start....."); prinuser(i.Select()); System.out.println("Test Get finished....."); } // 输出整张表数据 public static void prinuser(final List<User> i) { int p = 0; for (User io : i) { p++; System.out.println("==========第" + p + "条记录=========="); System.out.println(io.id); } } // 修改数据表 public static void Update(IUser i) { int id = 8; // 执行修改 User user = i.Where(id); user.setName("青春有你"); user.setClas("无怨无悔"); i.Update(user); } }