Heim > Datenbank > MySQL-Tutorial > Hauptteil

MyBatis连接SQLServer数据库

WBOY
Freigeben: 2016-06-07 15:52:06
Original
2165 Leute haben es durchsucht

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文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
	<!-- 引入属性文件 -->
	<properties resource="jdbc.properties"></properties>
	<environments default="development">
		<environment id="development">
			<!-- 事务管理器 -->
			<transactionmanager type="JDBC"></transactionmanager>
			<!-- 配置数据源 -->
			<datasource type="POOLED">
				<property name="driver" value="${driver}"></property>
				<property name="url" value="${url}"></property>
				<property name="username" value="${username}"></property>
				<property name="password" value="${password}"></property>
			</datasource>
		</environment>
	</environments>
	<!-- 配置映射资源文件 -->
	<mappers>
		<mapper resource="com/tenghu/object/Users.xml"></mapper>
	</mappers>
</configuration>
Nach dem Login kopieren


属性文件jdbc.properties

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:1434;Database=Users
username=sa
password=xiao(lao&hu
Nach dem Login kopieren

创建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() {
	}
}
Nach dem Login kopieren

创建Users.xml文件

<?xml version="1.0" encoding="UTF-8"?>

  <mapper namespace="com.tenghu.object.Users">
  	<!-- 查询全部用户 -->
  	<select id="queryUsers" resulttype="com.tenghu.object.Users">
  		select * from tb_users
  	</select>
  	<!-- 按照ID查询 -->
  	<select id="queryUsersId" parametertype="int" resulttype="com.tenghu.object.Users">
  		select * from tb_users where id=#{id}
  	</select>
  	<!-- 添加用户 -->
  	<insert id="insertUsers" parametertype="com.tenghu.object.Users">
  		insert into tb_users values(#{userName},#{password},#{trueName},#{email},#{phone},#{sex},#{group_id})
  	</insert>
  	<!-- 修改用户 -->
  	<update id="updateUsers" parametertype="com.tenghu.object.Users">
  		update tb_users set password=#{password},phone=#{phone} where id=#{id}
  	</update>
  	<!-- 删除用户 -->
  	<delete id="deleteUsers" parametertype="com.tenghu.object.Users">
  		delete  tb_users where id=#{id}
  	</delete>
  </mapper>
 
Nach dem Login kopieren

创建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;
	}
}
Nach dem Login kopieren


编写测试类Test.java

测试获取所有数据:

public static void main(String[] args) {
		// 获取SqlSession对象
		SqlSession session = MyBatisUtil.getSqlSession();
		// 查询全部对象
		List<users> list = session.selectList("com.tenghu.object.Users.queryUsers");
		System.out.println(list.size());
		//关闭SqlSession对象
		MyBatisUtil.closeSqlSession(session);
	}</users>
Nach dem Login kopieren


测试根据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);
	}
Nach dem Login kopieren


添加用户:

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);
	}
Nach dem Login kopieren

修改用户:

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);
	}
Nach dem Login kopieren


删除用户:

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);
	}
Nach dem Login kopieren

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


 

 




 

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage