复习第一个Mybatis程序
0.mybatis.jar ojdbc.jar
1.conf.xml(数据库配置信息+映射文件)
2.表-类映射文件
3.测试类
mybatis约定:
输入参数parameterType和输出参数resultType只能有一个
如果输入参数:是简单类型(八个基本类型+String) ,则可以使用任何占位符
如果是对象类型,则必须是对象得属性#{属性名}
输出参数:如果返回值类型是一个对象(如Student),则无论返回一个还是多个
在resultType都是写成org.myy.entity.Student
即resultType="org.myy.entity.Student1"
注意事项;
如果使用的事务方式为JDBC,则需要手工提交,即session.commit();
所有的标签<select><delete>等,都必须有sql语句,但是sql参数值可选
<?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"> <!--namespace:该mapper.xml映射文件的唯一标识 --> <mapper namespace="org.myy.entity.studentMapper"><!--映射文件的路径 --> <!--后续通过namespace.id --> <!--parameterType:输入参数的类型 resultType返回结果值得类型 --> <select id="queryStudentByStuno" parameterType="int" resultType="org.myy.entity.Student1"> select * from student1 where stuno=#{stuno} </select> <insert id="addStudent" parameterType="org.myy.entity.Student1"> insert into student1(stuno,stuname,stuage,graname) values(#{stuNo},#{stuName},#{stuAge},#{graName}) </insert> <delete id="deleteStudentByStuno" parameterType="int"> delete from student1 where stuno=#{stuno} </delete> <update id="updateStudentByStuno" parameterType="org.myy.entity.Student1"> update student1 set stuname=#{stuName},stuage=#{stuAge},graname=#{graName} where stuno=#{stuNo} </update> <select id="queryAllStudent" resultType="org.myy.entity.Student1"> select * from student1 </select> </mapper>
test.java
package org.myy.entity; 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; public class Test { //查询单个学生 public static void queryStudentByStuno() throws IOException { //Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通过build的第二参数 指定数据库环境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); String statement="org.myy.entity.studentMapper.queryStudentByStuno"; Student1 student1 = session.selectOne(statement,1); System.out.println(student1); session.close(); } //查询全部学生 public static void queryAllStudent() throws IOException { //Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通过build的第二参数 指定数据库环境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); String statement="org.myy.entity.studentMapper.queryAllStudent"; List<Student1> student1s=session.selectList(statement); System.out.println(student1s); session.close(); } //增加学生 public static void addStudent() throws IOException { //Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通过build的第二参数 指定数据库环境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); String statement="org.myy.entity.studentMapper."+ "addStudent";//statement:指定执行的sql Student1 student1=new Student1(3,"myy",200,"yym"); int count = session.insert(statement, student1); session.commit();//提交事务 System.out.println("增加"+count+"个学生"); session.close(); } //删除学生 public static void deleteStudentByStuno() throws IOException { //Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通过build的第二参数 指定数据库环境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); String statement="org.myy.entity.studentMapper."+ "deleteStudentByStuno";//statement:指定执行的sql int count = session.delete(statement, 3); session.commit();//提交事务 System.out.println("删除"+count+"个学生"); session.close(); } //修改学生 public static void updateStudentByStuno() throws IOException { //Connection - SqlSession操作Mybatis //conf.xml->reader Reader reader = Resources.getResourceAsReader("conf.xml"); //reader->sqlSession //可以通过build的第二参数 指定数据库环境 SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader,"development"); SqlSession session = sessionFactory.openSession(); String statement="org.myy.entity.studentMapper."+ "updateStudentByStuno";//statement:指定执行的sql //修改的参数 Student1 student1=new Student1(); //修改哪个人 student1.setStuNo(2); student1.setStuName("lss"); student1.setStuAge(9); student1.setGraName("ss"); int count = session.update(statement, student1); session.commit();//提交事务 System.out.println("修改"+count+"个学生"); session.close(); } public static void main(String[] args) throws IOException { queryStudentByStuno(); addStudent(); queryAllStudent(); deleteStudentByStuno(); queryAllStudent(); updateStudentByStuno(); queryAllStudent(); } }