MyBatis连接SQLServer数据库

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的头不复制到文件中<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

这样就有了提示功能,当然不要也行,只要你能记住,都无所谓的

4、创建实体类,我这里用的Users类,实体类对应数据库中的字段名

5、创建与类名相对应的xml,如Users.xml,这个文件虽然是自己键的,但也需要到文档中将头复制过来<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">,sql语句就写在该文件中

6、编写代码获取配置文件资源

 

具体操作如下:

创建mybatis-config.xml文件

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE configuration  
  3.   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  5. <configuration>  
  6.     <!-- 引入属性文件 -->  
  7.     <properties resource="jdbc.properties"/>  
  8.     <environments default="development">  
  9.         <environment id="development">  
  10.             <!-- 事务管理器 -->  
  11.             <transactionManager type="JDBC" />  
  12.             <!-- 配置数据源 -->  
  13.             <dataSource type="POOLED">  
  14.                 <property name="driver" value="${driver}" />  
  15.                 <property name="url" value="${url}" />  
  16.                 <property name="username" value="${username}" />  
  17.                 <property name="password" value="${password}" />  
  18.             </dataSource>  
  19.         </environment>  
  20.     </environments>  
  21.     <!-- 配置映射资源文件 -->  
  22.     <mappers>  
  23.         <mapper resource="com/tenghu/object/Users.xml"/>  
  24.     </mappers>  
  25. </configuration>  


属性文件jdbc.properties

[html] view plaincopy
 
  1. driver=com.microsoft.sqlserver.jdbc.SQLServerDriver  
  2. url=jdbc:sqlserver://127.0.0.1:1434;Database=Users  
  3. username=sa  
  4. password=xiao(lao&hu  

创建Users.java类

[html] view plaincopy
 
  1. package com.tenghu.object;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. /**  
  6.  * 用户实体类  
  7.  * @author xiaolaohu  
  8.  *  
  9.  */  
  10. public class Users implements Serializable{  
  11.     //id  
  12.     private int id;  
  13.     //用户名  
  14.     private String userName;  
  15.     //密码  
  16.     private String password;  
  17.     //真实姓名  
  18.     private String trueName;  
  19.     //邮件  
  20.     private String email;  
  21.     //电话号码  
  22.     private String phone;  
  23.     //性别  
  24.     private String sex;  
  25.     //用户组  
  26.     private int group_id;  
  27.     public int getId() {  
  28.         return id;  
  29.     }  
  30.     public void setId(int id) {  
  31.         this.id = id;  
  32.     }  
  33.     public String getUserName() {  
  34.         return userName;  
  35.     }  
  36.     public void setUserName(String userName) {  
  37.         this.userName = userName;  
  38.     }  
  39.     public String getPassword() {  
  40.         return password;  
  41.     }  
  42.     public void setPassword(String password) {  
  43.         this.password = password;  
  44.     }  
  45.     public String getTrueName() {  
  46.         return trueName;  
  47.     }  
  48.     public void setTrueName(String trueName) {  
  49.         this.trueName = trueName;  
  50.     }  
  51.     public String getEmail() {  
  52.         return email;  
  53.     }  
  54.     public void setEmail(String email) {  
  55.         this.email = email;  
  56.     }  
  57.     public String getPhone() {  
  58.         return phone;  
  59.     }  
  60.     public void setPhone(String phone) {  
  61.         this.phone = phone;  
  62.     }  
  63.     public String getSex() {  
  64.         return sex;  
  65.     }  
  66.     public void setSex(String sex) {  
  67.         this.sex = sex;  
  68.     }  
  69.     public int getGroup_Id() {  
  70.         return group;  
  71.     }  
  72.     public void setGroup(int group_id) {  
  73.         this.group_id= group_id;  
  74.     }  
  75.     public Users() {  
  76.     }  
  77. }  

创建Users.xml文件

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper  
  3.   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5.   <mapper  namespace="com.tenghu.object.Users">  
  6.     <!-- 查询全部用户 -->  
  7.     <select id="queryUsers" resultType="com.tenghu.object.Users">  
  8.         select * from tb_users  
  9.     </select>  
  10.     <!-- 按照ID查询 -->  
  11.     <select id="queryUsersId" parameterType="int" resultType="com.tenghu.object.Users">  
  12.         select * from tb_users where id=#{id}  
  13.     </select>  
  14.     <!-- 添加用户 -->  
  15.     <insert id="insertUsers" parameterType="com.tenghu.object.Users">  
  16.         insert into tb_users values(#{userName},#{password},#{trueName},#{email},#{phone},#{sex},#{group_id})  
  17.     </insert>  
  18.     <!-- 修改用户 -->  
  19.     <update id="updateUsers" parameterType="com.tenghu.object.Users">  
  20.         update tb_users set password=#{password},phone=#{phone} where id=#{id}  
  21.     </update>  
  22.     <!-- 删除用户 -->  
  23.     <delete id="deleteUsers" parameterType="com.tenghu.object.Users">  
  24.         delete  tb_users where id=#{id}  
  25.     </delete>  
  26.   </mapper>  
  27.    

创建MyBatisUtil.java工具类

[html] view plaincopy
 
  1. package com.tenghu.util;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5.   
  6. import org.apache.ibatis.io.Resources;  
  7. import org.apache.ibatis.session.SqlSession;  
  8. import org.apache.ibatis.session.SqlSessionFactory;  
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  10.   
  11. /**  
  12.  * 工具类  
  13.  *  
  14.  */  
  15. public class MyBatisUtil {  
  16.     //创建SqlSessionFactory对象  
  17.     private static SqlSessionFactory factory;  
  18.     static{  
  19.         try {  
  20.             //获取配置文件资源  
  21.             InputStream inputStream=Resources.getResourceAsStream("mybatis-config.xml");  
  22.             //获取SqlSessionFactory对象  
  23.             factory=new SqlSessionFactoryBuilder().build(inputStream);  
  24.         } catch (IOException e) {  
  25.             e.printStackTrace();  
  26.         }  
  27.     }  
  28.       
  29.     /**  
  30.      * 获取SqlSession对象  
  31.      */  
  32.     public static SqlSession getSqlSession(){  
  33.         return factory.openSession();  
  34.     }  
  35.       
  36.     /**  
  37.      * 关闭SqlSession对象  
  38.      */  
  39.     public static void closeSqlSession(SqlSession session){  
  40.         if(null!=session){  
  41.             //关闭Sqlsession对象  
  42.             session.close();  
  43.         }  
  44.         session=null;  
  45.     }  
  46. }  


编写测试类Test.java

测试获取所有数据:

[html] view plaincopy
 
  1. public static void main(String[] args) {  
  2.         // 获取SqlSession对象  
  3.         SqlSession session = MyBatisUtil.getSqlSession();  
  4.         // 查询全部对象  
  5.         List<Userslist = session.selectList("com.tenghu.object.Users.queryUsers");  
  6.         System.out.println(list.size());  
  7.         //关闭SqlSession对象  
  8.         MyBatisUtil.closeSqlSession(session);  
  9.     }  


测试根据ID获取数据

[html] view plaincopy
 
  1. public static void main(String[] args) {  
  2.         // 获取SqlSession对象  
  3.         SqlSession session = MyBatisUtil.getSqlSession();  
  4.         // 查询单个对象  
  5.         Users user=session.selectOne("com.tenghu.object.Users.queryUsersId", 4);  
  6.         System.out.println(user.getId()+"\t"+user.getUserName());  
  7.         //关闭SqlSession对象  
  8.         MyBatisUtil.closeSqlSession(session);  
  9.     }  


添加用户:

[html] view plaincopy
 
  1. public static void main(String[] args) {  
  2.         // 获取SqlSession对象  
  3.         SqlSession session = MyBatisUtil.getSqlSession();  
  4.         Users user = new Users();  
  5.         user.setUserName("xinxin");  
  6.         user.setPassword("mimimi");  
  7.         user.setTrueName("信息");  
  8.         user.setEmail("sdfsds@e.com");  
  9.         user.setPhone("12093234322342");  
  10.         user.setSex("男");   
  11.         user.setGroup_id(1);  
  12.         session.insert("com.tenghu.object.Users.insertUsers", user);  
  13.         //提交  
  14.         session.commit();  
  15.         // 关闭SqlSession对象  
  16.         MyBatisUtil.closeSqlSession(session);  
  17.     }  

修改用户:

[html] view plaincopy
 
  1. public static void main(String[] args) {  
  2.         // 获取SqlSession对象  
  3.         SqlSession session = MyBatisUtil.getSqlSession();  
  4.         Users user = new Users();  
  5.         user.setId(11);  
  6.         user.setPassword("hahahaha");  
  7.         user.setPhone("3243223242");  
  8.         session.update("com.tenghu.object.Users.updateUsers", user);  
  9.         //提交  
  10.         session.commit();  
  11.         // 关闭SqlSession对象  
  12.         MyBatisUtil.closeSqlSession(session);  
  13.     }  


删除用户:

[html] view plaincopy
 
  1. public static void main(String[] args) {  
  2.         // 获取SqlSession对象  
  3.         SqlSession session = MyBatisUtil.getSqlSession();  
  4.         Users user = new Users();  
  5.         user.setId(11);  
  6.         session.delete("com.tenghu.object.Users.deleteUsers", user);  
  7.         //提交  
  8.         session.commit();  
  9.         // 关闭SqlSession对象  
  10.         MyBatisUtil.closeSqlSession(session);  
  11.     }  

这样就完成的使用MyBatis对数据库的简单的增删改查操作


 

 




 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-11-17 13:51  wjj1013  阅读(1223)  评论(0编辑  收藏  举报