mybatis入门——4.实现简单CURD

一、步骤

先说下步骤,建立数据库表、添加mybatis包和mysql包,建立mybatis-config.xml配置文件,创建映射ORM(可以用逆向工程),添加mappers添加映射到mybatis-config.xml中、建立工具类,用build构建factory,从factory获得sqlsession,建立servlet(为了测试方便笔者建立的是普通class),sqlsession执行sql,关闭连接。

二、实现

建立数据库

项目总结构图,右图是使用逆向工程的方法

     

mybatis-config.xml配置文件代码,已添加映射

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"mybatis-3-config.dtd">
<configuration>
  <!-- 数据库环境 -->
  <environments default="development">
    <environment id="development">
      <!-- 采用JDBC管理器方式 -->
      <transactionManager type="JDBC"/>
      <!-- POOLED采用mybabtis内部连接池方式 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
        <property name="username" value="root"/>
        <property name="password" value="1234"/>
      </dataSource>
    </environment>
  </environments>
  <!-- 添加映射 -->
  <mappers>
  	<mapper resource="UserMapper.xml"/>
  </mappers>
</configuration>

 ORM映射配置文件(逆向工程不用改)UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.orm.UserMapper">
  <insert id="insert" parameterType="com.orm.User" useGeneratedKeys="true" keyProperty="id">
  	insert into
  	user(name,password,age)
  	values(#{name},#{password},#{age})
  </insert>
  
  <select id="selecById" parameterType="int" resultType="com.orm.User">
	select * from
	user where id=#{id}
  </select>
  
  <delete id="deleteById" parameterType="int">
  	delete from
  	user where id=#{id}
  </delete>
  
  <select id="selectAll" resultType="com.orm.User">
  		select * from user
  </select>
  
  <update id="updataById" parameterType="com.orm.User">
  	update user
  	set
  	name=#{name},password=#{password},age=#{age}
  	where id=#{id}
  </update>
</mapper>

工具类GetSqlSession

package com.dbtools;

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 abstract class GetSqlSession {

	public static SqlSession getSqlSession() throws IOException{
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}
}

 插入数据Insert

package com.controller;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.dbtools.GetSqlSession;
import com.orm.User;
//插入一条信息
public class Insert {

	public static void main(String[] args) {
		
		User user = new User();
		user.setName("first");
		user.setPassword("1234");
		user.setAge(18);
		try {
			SqlSession sqlSession = GetSqlSession.getSqlSession();
			/*逆向工程插入
			 * sqlSession.insert("com.orm.UserMapper.insert", user)*/
			sqlSession.insert("com.orm.UserMapper.insert", user);
			System.out.println(user.getId());
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

根据id查询信息SelectById

package com.controller;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.dbtools.GetSqlSession;
import com.orm.User;
//查询id为3的信息
public class SelectById {

	public static void main(String[] args) {
		try {
			SqlSession sqlSession = GetSqlSession.getSqlSession();
			/*逆向工程
			User user = sqlSession.selectOne("com.orm.UserMapper.selectByPrimaryKey", 3);*/
			User user = sqlSession.selectOne("com.orm.UserMapper.selecById", 3);
			System.out.println(user.getName());
			System.out.println(user.getPassword());
			System.out.println(user.getAge());
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

 查询所有SelectAll

package com.controller;

import java.io.IOException;
import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.dbtools.GetSqlSession;
import com.orm.User;
//查询所有
public class SelectAll {

	public static void main(String[] args) {
		try {
			SqlSession sqlSession = GetSqlSession.getSqlSession();
			/*逆向工程
			List<User> userList = sqlSession.selectList("com.orm.UserMapper.selectByExample");*/
			List<User> userList = sqlSession.selectList("com.orm.UserMapper.selectAll");
			for (int i = 0; i < userList.size(); i++) {
				User user = userList.get(i);
				System.out.println(user.getName()+" "+user.getPassword()+""+user.getAge());
			}
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

根据id删除信息DeleteById

package com.controller;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.dbtools.GetSqlSession;
//删除id为4的信息
public class DeleteById {

	public static void main(String[] args) {
		try {
			SqlSession sqlSession = GetSqlSession.getSqlSession();
			/*逆向工程删除
			sqlSession.delete("com.orm.UserMapper.deleteByPrimaryKey", 9);*/
			sqlSession.delete("com.orm.UserMapper.deleteById", 9);
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

 根据id修改信息UpdataById

package com.controller;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.dbtools.GetSqlSession;
import com.orm.User;
//更新id为5的信息
public class UpdataById {

	public static void main(String[] args) {
		try {
			SqlSession sqlSession = GetSqlSession.getSqlSession();
			/*逆向工程
			User user = sqlSession.selectOne("com.orm.UserMapper.selectByPrimaryKey", 5);*/
			User user = sqlSession.selectOne("com.orm.UserMapper.selecById", 5);
			user.setName("young");
			user.setPassword("654");
			user.setAge(28);
			/*逆向工程
			sqlSession.update("com.orm.UserMapper.updateByPrimaryKey", user);*/
			sqlSession.update("com.orm.UserMapper.updataById", user);
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/Milan__Kundera/article/details/81185283