MyBatis通过配置文件XML方式对数据库中学生表进行增删改查以及多条件查询

1.首先建立学生表:
在这里插入图片描述
2.需要用到的相关包:
在这里插入图片描述
3.mybatis.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>  
   <settings>
   <setting name="logImpl" value="STDOUT_LOGGING" />
   </settings>  
   <typeAliases>
   <package name="com.po"/>
   </typeAliases>
       <!--    定义环境-->
    <environments default="mysql">
        <environment id="mysql">
<!--          定义事务-->
            <transactionManager type="JDBC"></transactionManager>
<!--定义数据源            -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="wu"/>
            </dataSource>
        </environment>
    </environments>
    <mappers >
    <mapper resource="com/mapper/StudentMapper.xml"/>
    </mappers>
   </configuration>

4.DButil里面的相关内容:

package com.util;

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 DButil {
	 public static SqlSessionFactory factory;
	    static {
	        //通过字符流的读取将主配置文件读取到程序中;
	        try {
	            Reader reader= Resources.getResourceAsReader("mybatis.xml");
	            
	            //创建会话工厂建造者对象
	            SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
	            //得到会话工厂对象
	            factory=builder.build(reader);
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	    //得到链接对象
	    public static SqlSession getSession(boolean auto){
	        return  factory.openSession(auto);
	    }
		
}

5.com.po包里面对学生信息进行封装;

package com.po;

public class Student {
	private int id;
	private String username;
	private String sex;
	private String age;
	private String banji;
	private String hobby;
	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 getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getBanji() {
		return banji;
	}
	public void setBanji(String banji) {
		this.banji = banji;
	}
	public String getHobby() {
		return hobby;
	}
	public void setHobby(String hobby) {
		this.hobby = hobby;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Student [id=" + id + ", username=" + username + ", sex=" + sex + ", age=" + age + ", banji=" + banji
				+ ", hobby=" + hobby + "]";
	}
	
	
}

6.com.inter包里面写入对student相关操作:

package com.inter;

import java.util.List;

import com.po.Student;

public interface StudentInter {
	public List<Student> select();
	public void insert(Student student);
	public void delete(int id);
	public int update(Student student);
	Student findwhere(Student student);
	
}

7.在com.mapper里面通过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">
        <!-- namespace指定接口的地址 -->
 <mapper namespace="com.inter.StudentInter">
 	 <sql id="select"><!-- id可以自己取 -->
 	 select * from student
 	 </sql>	
 	  
	 <select id="select" resultType="Student">
	 select * from student
	 </select>	 
	 <select id="selectById" parameterType="Integer" resultType="Student">
		<include refid="select" /> where id=#{id}
	 </select>
	 
	 <insert id="insert" parameterType="Student">
	 <!-- #{id},#{uname},#{upass},#{sex}是test这个bean中定义的属性名 -->
	 insert into student(username,sex,age,banji,hobby) values(#{username},#{sex},#{age},#{banji},#{hobby});
	 </insert>
	 
	 <delete id="delete" parameterType="int">
	 delete from student where id=#{id}
	 </delete>
	 
	 <update id="update" parameterType="com.po.Student">
	 update student set username=#{username},sex=#{sex},age=#{age},banji=#{banji},hobby=#{hobby} where id=#{id}
	 </update>
	 
	 
	 <select id="findwhere" parameterType="Student" resultType="Student">
		 <include refid="select" />
			
				 <where>
				 	<if test="banji!=null">
				 		 banji like '%' #{banji} '%'
				 	</if>
				 	<if test="hobby!=null">
				 		and hobby like #{hobby} '%'
				 	</if>
				 </where>
					 
	 </select>
 </mapper>

8.在com.test里面编写测试类:

package com.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import com.inter.StudentInter;
import com.po.Student;
import com.util.DButil;

public class Studentmain {

	public static void main(String[] args) {
		SqlSession session=DButil.getSession(true);
		StudentInter inter=session.getMapper(StudentInter.class);
		Student student=new Student();
		student.setBanji("20");
		student.setHobby("aa");
		inter.findwhere(student);
	}
	@Test
	public void insert() {
	SqlSession session=DButil.getSession(true);
	StudentInter inter=session.getMapper(StudentInter.class);
	Student st=new Student();
	st.setUsername("吴");
	st.setSex("男");
	st.setAge("21");
	st.setBanji("24班");
	st.setHobby("篮球");
	inter.insert(st);
	}
	
	@Test
	public void delete() {
		SqlSession session=DButil.getSession(true);
		StudentInter inter=session.getMapper(StudentInter.class);
		inter.delete(4);
	}
	
	@Test
	public void update() {
		SqlSession session=DButil.getSession(true);
		StudentInter inter=session.getMapper(StudentInter.class);
		Student st=new Student();
		st.setUsername("yang");
		st.setSex("男");
		st.setAge("23");
		st.setBanji("14班");
		st.setHobby("running");
		st.setId(6);
		inter.update(st);
	}
	@Test
	public void select() {
		SqlSession session=DButil.getSession(true);
		StudentInter inter=session.getMapper(StudentInter.class);
		List<Student> list=inter.select();
		for (Student st : list) {
			System.out.print("序号:"+st.getId()+";姓名:"+st.getUsername()+";sex:"+
		st.getSex()+";age:"+st.getAge()+";班级:"+st.getBanji()+";爱好:"+st.getHobby());
		}
	}
	
	@Test
	public void findwhere() {
		SqlSession session=DButil.getSession(true);
		StudentInter inter=session.getMapper(StudentInter.class);
		Student student=new Student();
		student.setBanji("20");
		student.setHobby("aa");
		inter.findwhere(student);
		System.out.println(inter.findwhere(student));
	}
}

9.最后的测试结果图:
在这里插入图片描述

某学校拟使用XML文件制定一个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息:班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名、性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系 方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写XML文件,编写相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写XML文件,编写合适的XSL文件,将学生基本信息打印成格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值