mybatis入门级对数据库增删查改

 Mybatis入门级数据库操作

只是记录Mybatis入门级的数据库操作,想要深入学习,请参考官方文档吐舌头

什么是 MyBatis?

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

实例:

要对数据库操作需要对数据库操作的jar包,用mybatis就需要mybatis的jar包

我用到的是这两个jar包





1.定义持久化类

User.java

package com.Model;

public class User {
	private Integer userid;
	private String username;
	private String password;
	public int getUserid() {
		return userid;
	}
	public void setUserid(int userid) {
		this.userid = userid;
	}
	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 toString(){
		
		return  userid+","+username+","+password;
	}

	
}
2.定义DAO层(与数据库进行交互,数据库增删查改)

userMapper.java  和userMapper.xml(.Java文件和.xml文件名字要一致)


userMapper.java

package com.Dao;

import java.util.List;

import com.Model.User;

public interface UserMapper {
	
	public int insert(User user) throws Exception;
	
    public int delete(int userid) throws Exception;
    
    public List<User> findall() throws Exception;
    
    public List<User> findById(int userid) throws Exception;
    
    public  int update(User user) throws Exception;
    
}

userMapper.xml(实现UserMapper里定义的增删查改方法)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.Dao.UserMapper">

	<resultMap type="User" id="UserResult">
		<id column="userid" javaType="java.lang.Integer" property="userid" />
		<result column="username" javaType="java.lang.String" property="username" />
		<result column="password" javaType="java.lang.String" property="password" />
	</resultMap>
	
	<insert id="insert" parameterType="com.Model.User" useGeneratedKeys="true" keyProperty="userid">
		INSERT INTO user (username,password) values(#{username},#{password})
	</insert>

	<delete id="delete" parameterType="int">
		DELETE FROM user WHERE userid = #{userid}
	</delete>
	

	<select id="findall"  resultMap="UserResult">
		SELECT * FROM user 
	</select>

	<select id="findById" parameterType="int" resultMap="UserResult">
		SELECT * FROM user WHERE userid = #{userid}
	</select>

	<update id="update" parameterType="com.Model.User" >
		UPDATE user SET
		username = #{username},
		password = #{password}
		WHERE
		userid = #{userid}
	</update>

	
</mapper>
3.要实现以上方法就要与数据库取得连接

第一种方法:两个文件

(1)mysql.property

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/db_mybatis?useUnicode\=true&characterEncoding\=gbk
jdbc.username=root
jdbc.password=xidaojia

(2)Configuration.xml

<?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>
         <!--  引入MySQL配置文件-->
	<properties resource="mysql.properties"></properties>
	<typeAliases>
		<package name="com.Model" />
	</typeAliases>
    <!--配置数据源  -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="UNPOOLED">
				<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>

    <!--自动扫描包下面的.xml配置文件 -->
	<mappers>
		<package name="com.Dao" />
	</mappers>

</configuration>

第二种方法:

<?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>
    <!-- mybatis别名定义 -->
    <typeAliases> 
        <typeAlias alias="User" type="
com.Model
"/> </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/javaweb" /> <property name="username" value="root"/> <property name="password" value="xidaojia"/> </dataSource> </environment> </environments> <!-- mybatis的mapper文件,每个xml配置文件对应一个接口 --> <mappers> <mapper resource="UserMapper.xml"/> </mappers></configuration>
 
 

 
 

4.设置了一个类 DBTool,用于在下面将要说的测试文件中获得SqlSessionFactory,类似于Hibernate中HibernateSessionFactory

package com.Tools;

import java.io.Reader;
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 DBTools {
    public static SqlSessionFactory sessionFactory;
    
    static{
        try {
            
            Reader reader = Resources.getResourceAsReader("Configuration.xml");
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }     
    }
    
    public static SqlSession getSession(){
        return sessionFactory.openSession();
    }
    
}
5.下面就是对以上东西的测试:

package com.Test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.Dao.UserMapper;
import com.Model.User;
import com.Tools.DBTools;

public class test {
	public static void main(String[] args) {

		// insert();
		// delete();
		// findall();
		// findById();
		update();
	}

	private static void insert() {
		User user = new User();
		SqlSession session = DBTools.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		user.setUsername("mybatis2");
		user.setPassword("javaweb");
		try {
			mapper.insert(user);
			System.out.println(user.toString());
			session.commit();

		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();

		}

	}

	private static void delete() {
		SqlSession session = DBTools.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		try {
			mapper.delete(2);
			session.commit();

		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();

		}
	}

	private static void findall() {
		SqlSession session = DBTools.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		try {
			List<User> list = mapper.findall();
			System.out.println(list);
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();

		}

	}

	private static void findById() {
		SqlSession session = DBTools.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);

		try {

			List<User> list = mapper.findById(1);
			System.out.println(list);
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();

		}
	}

	private static void update() {
		SqlSession session = DBTools.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		User user = new User();
		user.setUsername("Mybatis");
		user.setPassword("database");
        user.setUserid(1);
		try {

			mapper.update(user);
			session.commit();

		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();

		}

	}
}
以上是对自己学习mybatis的感受,小学生所做,如果大牛看到多多指正。







猜你喜欢

转载自blog.csdn.net/xxidaojia/article/details/57428915
今日推荐