mybatis与hibernate都是持久层框架,其实mybatis在早起的版本名叫ibatis,目前和hibernate用的最多的持久层框架 什么是mybatis? mybatis 是支持普通 sql 查询,存储过程和高级映射的优秀持久层框架。mybatis 消除 了几乎所有的 jdbc 代码和参数的手工设置以
mybatis与hibernate都是持久层框架,其实mybatis在早起的版本名叫ibatis,目前和hibernate用的最多的持久层框架
什么是mybatis?
mybatis 是支持普通 sql 查询,存储过程和高级映射的优秀持久层框架。mybatis 消除 了几乎所有的 jdbc 代码和参数的手工设置以及结果集的检索。mybatis 使用简单的 xml 或注解用于配置和原始映射,将接口和 java 的 pojos(plain old java objects,普通的 java 对象)映射成数据库中的记录。
其他的就不用多说了,直接进入正题用代码说话比较实在
要使用mybatis这个持久层框架,必须要到网上去下载框架包http://code.google.com/p/mybatis/downloads/detail?name=mybatis-3.2.3.zip
1、在myeclipse中创建一个java工程,工程名随便,自己喜欢就行
2、将mybatis的jar包和数据库的驱动包导入工程
3、创建mybatis-config.xml配置文件,配置文件的说明在下载的文件里面有英文版的,在官网上面也有中文版http://mybatis.github.io/mybatis-3/zh/index.html,可以到官网的帮助文档中将mybatis-config.xml的头不复制到文件中nbsp;public -//mybatis.org//dtd config 3.0//en http://mybatis.org/dtd/mybatis-3-config.dtd>
这样就有了提示功能,当然不要也行,只要你能记住,都无所谓的
4、创建实体类,我这里用的users类,实体类对应数据库中的字段名
5、创建与类名相对应的xml,如users.xml,这个文件虽然是自己键的,但也需要到文档中将头复制过来-//mybatis.org//dtd mapper 3.0//en
http://mybatis.org/dtd/mybatis-3-mapper.dtd>,sql语句就写在该文件中
6、编写代码获取配置文件资源
具体操作如下:
创建mybatis-config.xml文件
属性文件jdbc.properties
driver=com.microsoft.sqlserver.jdbc.sqlserverdriverurl=jdbc:sqlserver://127.0.0.1:1434;database=usersusername=sapassword=xiao(lao&hu
创建users.java类
package com.tenghu.object;import java.io.serializable;/** * 用户实体类 * @author xiaolaohu * */public class users implements serializable{ //id private int id; //用户名 private string username; //密码 private string password; //真实姓名 private string truename; //邮件 private string email; //电话号码 private string phone; //性别 private string sex; //用户组 private int group_id; 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 getpassword() { return password; } public void setpassword(string password) { this.password = password; } public string gettruename() { return truename; } public void settruename(string truename) { this.truename = truename; } public string getemail() { return email; } public void setemail(string email) { this.email = email; } public string getphone() { return phone; } public void setphone(string phone) { this.phone = phone; } public string getsex() { return sex; } public void setsex(string sex) { this.sex = sex; } public int getgroup_id() { return group; } public void setgroup(int group_id) { this.group_id= group_id; } public users() { }}
创建users.xml文件
select * from tb_users select * from tb_users where id=#{id} insert into tb_users values(#{username},#{password},#{truename},#{email},#{phone},#{sex},#{group_id}) update tb_users set password=#{password},phone=#{phone} where id=#{id} delete tb_users where id=#{id}
创建mybatisutil.java工具类
package com.tenghu.util;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 { //创建sqlsessionfactory对象 private static sqlsessionfactory factory; static{ try { //获取配置文件资源 inputstream inputstream=resources.getresourceasstream(mybatis-config.xml); //获取sqlsessionfactory对象 factory=new sqlsessionfactorybuilder().build(inputstream); } catch (ioexception e) { e.printstacktrace(); } } /** * 获取sqlsession对象 */ public static sqlsession getsqlsession(){ return factory.opensession(); } /** * 关闭sqlsession对象 */ public static void closesqlsession(sqlsession session){ if(null!=session){ //关闭sqlsession对象 session.close(); } session=null; }}
编写测试类test.java
测试获取所有数据:
public static void main(string[] args) { // 获取sqlsession对象 sqlsession session = mybatisutil.getsqlsession(); // 查询全部对象 list list = session.selectlist(com.tenghu.object.users.queryusers); system.out.println(list.size()); //关闭sqlsession对象 mybatisutil.closesqlsession(session); }
测试根据id获取数据
public static void main(string[] args) { // 获取sqlsession对象 sqlsession session = mybatisutil.getsqlsession(); // 查询单个对象 users user=session.selectone(com.tenghu.object.users.queryusersid, 4); system.out.println(user.getid()+\t+user.getusername()); //关闭sqlsession对象 mybatisutil.closesqlsession(session); }
添加用户:
public static void main(string[] args) { // 获取sqlsession对象 sqlsession session = mybatisutil.getsqlsession(); users user = new users(); user.setusername(xinxin); user.setpassword(mimimi); user.settruename(信息); user.setemail(sdfsds@e.com); user.setphone(12093234322342); user.setsex(男); user.setgroup_id(1); session.insert(com.tenghu.object.users.insertusers, user); //提交 session.commit(); // 关闭sqlsession对象 mybatisutil.closesqlsession(session); }
修改用户:
public static void main(string[] args) { // 获取sqlsession对象 sqlsession session = mybatisutil.getsqlsession(); users user = new users(); user.setid(11); user.setpassword(hahahaha); user.setphone(3243223242); session.update(com.tenghu.object.users.updateusers, user); //提交 session.commit(); // 关闭sqlsession对象 mybatisutil.closesqlsession(session); }
删除用户:
public static void main(string[] args) { // 获取sqlsession对象 sqlsession session = mybatisutil.getsqlsession(); users user = new users(); user.setid(11); session.delete(com.tenghu.object.users.deleteusers, user); //提交 session.commit(); // 关闭sqlsession对象 mybatisutil.closesqlsession(session); }
这样就完成的使用mybatis对数据库的简单的增删改查操作