mybatis基本的增删改查

config.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>
<!-- 通过environments的default值和environment的id来指定mybatis运行的数据库环境 -->
 <environments default="development">
 	<!-- 本机环境 (真正的项目应该在别的计算机) -->
	 <environment id="development">
	 	<!-- 事务的提交方式
	 		JDBC:利用JDBC方式处理事务(commit rollback close) 手工
	 		MANAGED:将事务交由其他组件去托管(Spring,jboss) 自动 默认会关闭连接 <property  name="closeConnection" value="false"/>
	 	 -->
		 <transactionManager type="JDBC"/>
		 
		 <!--数据源类型 
		 	POOLED:使用数据库连接池
		 	UNPOOLED:使用传统的JDBC模式(每次访问数据库,均需要打开关闭数据库)
		 	JNDI:从tomcat中获取一个内置数据库连接池
		  -->
		 <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="lf123456"/>
		 </dataSource>
	 </environment>
 </environments>
 <!-- 加载映射文件 -->
 <mappers>
 	<mapper resource="com/user/UserMapper.xml"/>
 	<mapper resource="com/user/StudentMapper.xml"/>
 </mappers>
</configuration>

studentmapper.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.user.StudentMapper1">
	 <select id="StudentById" resultType="com.user.Student" parameterType="String">
	 	<!-- 输入输出:如果是简单类型,可以以使用任何占位符,#{xxx}
	 		如果是对象,只能是属性
	 	 -->
	 	select * from student where stu_id = #{id}
	 </select>
	 <insert id="insertStu" parameterType="com.user.Student">
	 	insert into student(stu_id,stu_name,stu_birth,stu_sex) values(#{stu_id},#{stu_name},#{stu_birth},#{stu_sex})
	 </insert>
	 <delete id="deleteStuByNo" parameterType="String">
	 	delete from student where stu_id=#{xxx}
	 </delete>
	 <update id="updateStudentByStuNo" parameterType="com.user.Student">
	 	update student set stu_name=#{stu_name},stu_birth=#{stu_birth},stu_sex=#{stu_sex} where stu_id = #{stu_id}
	 </update>
	 <!-- 如果返回值类型是一个对象,则无论返回一个还是多个,resultType都写成类com.user.Student -->
	 <select id="queryAllStu" resultType="com.user.Student">
	 	select * from student
	 </select>
</mapper>

测试类

package com.user;

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

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.user.Student;

public class TestMybatis3 {
	public static void main(String[] args) throws IOException {
		queryall();
		addStu();
		queryall();
	}
	//查询所有学生
	public static void queryall() throws IOException {
		Reader reader = Resources.getResourceAsReader("config.xml");
		//build第二个参数可以指定该环境id
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = sqlSessionFactory.openSession();
		String sql = "com.user.StudentMapper1.queryAllStu";
		List<Student> stu = session.selectList(sql);
		System.out.println(stu);
		session.close();
	}
	//增加
	public static void addStu() throws IOException {
		Reader reader = Resources.getResourceAsReader("config.xml");
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = sqlSessionFactory.openSession();
		String sql = "com.user.StudentMapper1.insertStu";
		Student stu = new Student();
		stu.setStu_id("1508080117");
		stu.setStu_name("里斯");
		stu.setStu_birth("1996-11-11");
		stu.setStu_sex("男");
		int count = session.insert(sql,stu);
		
		session.commit();//使用JDBC,增删改必须手动提交
		System.out.println("增加了"+count+"行");
		session.close();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_37759895/article/details/85837374