mybatis3使用@Select等注解实现增删改查

1.需要的jar包

2.目录树

3.具体代码



一.需要的jar包


第一个:mybatis的jar包

第二个:mysql数据的驱动


二.目录树



三.具体代码

使用框架,配置文件先行!

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="mysql">
         <environment id="mysql">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.jdbc.Driver"/>
                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                 <property name="username" value="root"/>
                 <property name="password" value="zhujunwen"/>
             </dataSource>    
         </environment>
     </environments>
     
     <!-- 配置映射-->
     <mappers>
     	<!-- 若映射文件mapper 是xml,则<mapper recourse...>,若映射文件为java文件,则<mapper class.....> -->
        <mapper class="com.UserMapper"/>	
     </mappers>
</configuration>


映射文件:

UserMapper.java:(用于映射SQL语句)

package com;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

public interface UserMapper {
    
    /*
    	这个一个接口,但不需要实现它,用于 函数与SQL语句 的映射
     * */
    
    @Insert("insert into tb_user(name,sex) values(#{name},#{sex})")
    public void insertT(User user);
    
    @Delete("delete from tb_user where id=#{id}")
    public void deleteById(int id);
    
    @Update("update tb_user set name=#{name},sex=#{sex} where id=#{id}")
    public void updateT(User user);
    
    @Select("select * from tb_user where id=#{id}")
    public User getUser(int id);
    
    @Select("select * from tb_user")
    public List<User> getAllUsers();
}


持久类:

User.java:(持久类中的成员变量要与数据表中的字段名字一致)

package com;

public class User {
	private Integer id;
	private String name;
	private String sex;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}

	public String toString() {
		return "User [id=" + id + ", name=" + name + ", sex=" + sex + "]";
	}
}


必要变量的快速获取:(获取Session)

FKSqlSessionFactory.java:

package com;

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 class FKSqlSessionFactory {
	private static SqlSessionFactory sqlSessionFactory = null;
	static{
		InputStream input;
		try {
			input = Resources.getResourceAsStream("conf.xml");
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static SqlSession getSqlSession(){
		return sqlSessionFactory.openSession();
	}
	
	public static SqlSessionFactory getSqlSessionFactory(){
		return sqlSessionFactory;
	}
}


测试文件(只是演示对数据库的插入)

package com;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

public class Test1 {

	public static void main(String[] args) {
		SqlSessionFactory factory= FKSqlSessionFactory.getSqlSessionFactory();
		SqlSession session = factory.openSession();
		UserMapper mapper = session.getMapper(UserMapper.class);//获取映射器实例
		
		User user = new User();
		user.setName("zhujunwen");
		user.setSex("m");
		
		mapper.insertT(user);	//调用映射器中的insertT()方法进行数据库插入
		
		session.commit();
		session.close();
	}
}

效果:


已有数据插入到数据表


数据表的样式:


猜你喜欢

转载自blog.csdn.net/u014453898/article/details/79818080