zoukankan      html  css  js  c++  java
  • 学习Mybatis中数据库操作的初次使用

    一、下载mybatis.jar包,导入项目。

    二、创建实体类:org.ruangong.entity。

    package org.ruangong.entity;
    
    import org.apache.ibatis.reflection.SystemMetaObject;
    
    public class Person {
    	
    private int id;
    public int getId() {
    	return id;
    }
    public void setId(int id) {
    	this.id = id;
    }
    public Person() {
    
    }
    public Person(int id, String name, int age) {
    	super();
    	this.id = id;
    	this.name = name;
    	this.age = age;
    }
    public String getName() {
    	return name;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    private String name;
    private int age;
    @Override
    public String toString() {
    	return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    
    
    }
    

      三、创建personMapper.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="org.ruangong.mapper.personMapper">
    
    	 <select id="queryPersonById" resultType="org.ruangong.entity.Person" parameterType="int">
    	 	select * from person where id = #{id}
    	 </select>
    	 
    	 <insert id="add" parameterType="org.ruangong.entity.Person">
    	 	insert into person(id,name,age) value(#{id},#{name},#{age})
    	 </insert>
    	  
    	  <delete id="delete" parameterType="int">
    	  	delete from person where id = #{id}
    	  </delete>
    	  
    	  <select id="queryall" resultType="org.ruangong.entity.Person">
    	  	select * from person
    	  </select>
    	  
    	  <update id="updatePerson" parameterType="org.ruangong.entity.Person">
    	  	update person set name=#{name},age=#{age} where id=#{id}
    	  </update>
    	  
    </mapper>
    

      四、创建配置文件conf.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="development">
    		 <environment id="development">
    		 <transactionManager type="JDBC"/>
    		 <dataSource type="POOLED">//连接池,提升性能
    			 <property name="driver" value="${driver}"/>
    			 <property name="url" value="${url}"/>
    			 <property name="username" value="${username}"/>
    			 <property name="password" value="${password}"/>
    		 </dataSource>
    		 </environment>
    	 </environments>
    	 <mappers>
    		 <mapper resource="org/ruangong/mapper/personMapper.xml"/>
    	 </mappers>
    </configuration>
    

      五、实现数据库操作:

    package org.ruangong.test;
    
    
    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 org.ruangong.entity.Person;
    import org.ruangong.mapper.personMapper;
    
    public class TestMybatis {
    	public static void queryOnePerson() throws IOException{
    		//加载配置文件
    		Reader reader = Resources.getResourceAsReader("conf.xml");
    		//SqlsessionFactory -- conection
    		 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    		 SqlSession session = sessionFactory.openSession();
    		 String statement="org.ruangong.mapper.personMapper.queryPersonById";
    		 Person person = session.selectOne(statement,1);
    		 System.out.println(person.getAge()+","+person.getId()+","+person.getName());
    		 session.close();
    	}
    	public static void addOnePerson() throws IOException{
    		//加载配置文件
    		Reader reader = Resources.getResourceAsReader("conf.xml");
    		//SqlsessionFactory -- conection
    		 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    		 SqlSession session = sessionFactory.openSession();
    		 String statement="org.ruangong.mapper.personMapper.add";
    		 Person person=new Person(2,"疯狗伟",80);
    		 int count = session.insert(statement,person);
    		 System.out.println("增加行数:"+count);
    		 session.commit();
    		 session.close();
    	}
    	public static void deleteOnePerson() throws IOException{
    		//加载配置文件
    		Reader reader = Resources.getResourceAsReader("conf.xml");
    		//SqlsessionFactory -- conection
    		 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    		 SqlSession session = sessionFactory.openSession();
    		 String statement="org.ruangong.mapper.personMapper.delete";
    		 int count = session.delete(statement,2);
    		 System.out.println("删除行数:"+count);
    		 session.commit();
    		 session.close();
    	}
    	public static void queryAllPerson() throws IOException{
    		//加载配置文件
    		Reader reader = Resources.getResourceAsReader("conf.xml");
    		//SqlsessionFactory -- conection
    		 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    		 SqlSession session = sessionFactory.openSession();
    		 String statement="org.ruangong.mapper.personMapper.queryall";
    		 List<Person> list = session.selectList(statement);
             System.out.println(list);
    		 session.close();
    	}
    	public static void updatePerson() throws IOException{
    		//加载配置文件
    		Reader reader = Resources.getResourceAsReader("conf.xml");
    		//SqlsessionFactory -- conection
    		 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    		 SqlSession session = sessionFactory.openSession();
    		 String statement="org.ruangong.entity.personMapper.updatePerson";
    		 Person person = new Person();
    		 person.setId(1);
    		 person.setName("疯狗伟");
    		 person.setAge(30);
    		 session.update(statement, person);
             session.commit();
    		 session.close();
    	}
    
    	
    public static void main(String[] args) throws IOException {
    	//queryOnePerson();
    	//addOnePerson();
    	//deleteOnePerson();
    //	queryAllPerson();
    //	updatePerson();
    	queryPerson2();
    //	addPerson2();
    }
    }
    

      收获:在传统连接数据库上,用到了连接池提高了数据库操作性能。

  • 相关阅读:
    程序员转型架构师,推荐你读这几本书
    Dubbo服务发现源码解析
    高可用架构之限流降级
    为什么Kafka速度那么快
    从分布式一致性到共识机制(三)拜占庭问题
    从分布式一致性到共识机制(二)Raft算法
    三分钟看完京东区块链白皮书
    轻松理解零知识证明
    三大去中心化交易协议对比
    从分布式一致性到共识机制(一)Paxos算法
  • 原文地址:https://www.cnblogs.com/jccjcc/p/13958905.html
Copyright © 2011-2022 走看看