myBatis简单使用,增删改查

MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

MYBATIS 的着力点,则在于POJO SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对HibernateO/R”而言,MYBATIS 是一种“Sql Mapping”的ORM实现。

Mybatis是流行的持久层开发框架,它相对比hibernate(也是持久层开发框架)比较简单

我面试过很多刚从培训机构出来的小伙,基本上都是培训个两三个月就出来找工作的,基本也就培训 struts 2+Spring+hibernate的吧,Mybatis如果你说你会的,会加分,所以如果你看到这篇文章,请好好的阅读一下


Mybatis可以分成三层:

(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
好了,就说到这里,下面就直接拿出来做一个,增删改查的小demo

package com.zkb.entity;

public class User {

	private int id;
	private String username;
	private String password;
	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 getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}	
	
   
   



   
   
	
	
    
    
	
    
    
		
     
     
		
     
     
		
     
     
	
    
    
	
	
    
    
    
    
    
  • select * from userinfo where id = #{id}
  • select * from userinfo where username like #{username} insert into userinfo values(null,#{username},#{password}) update userinfo set username=#{username},password=#{password} where id=#{id} delete from userinfo where id=#{id}
  • package com.zkb.dao; import java.util.List; import com.zkb.entity.User; public interface UserDao { public User selectUserByID(int id); public List selectUsers(String username); public void addUser(User user); public void updateUser(User user); public void delUser(User user); }package com.zkb.test; 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.zkb.dao.UserDao; import com.zkb.entity.User; public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static{ try{ reader = Resources.getResourceAsReader("Configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args) { SqlSession session = sqlSessionFactory.openSession(); try { UserDao userOperation=session.getMapper(UserDao.class); //查询 List users = userOperation.selectUsers("%a%"); for (User user : users) { System.out.println(user.getUsername()+"\t"+user.getPassword()); } //添加,这里id要设置为自动增长列 // User userAdd=new User(); // userAdd.setUsername("45646"); // userAdd.setPassword("123"); // userOperation.addUser(userAdd); // session.commit(); //修改 // User userUp=userOperation.selectUserByID(5); // userUp.setUsername("abcd"); // userUp.setPassword("efg"); // userOperation.updateUser(userUp); // session.commit(); //删除 User userDel=userOperation.selectUserByID(5); userOperation.delUser(userDel); session.commit(); } finally { session.close(); } } } SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `userinfo` -- ---------------------------- DROP TABLE IF EXISTS `userinfo`; CREATE TABLE `userinfo` ( `id` int(8) NOT NULL auto_increment, `username` varchar(20) NOT NULL, `password` varchar(20) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of userinfo -- ---------------------------- INSERT INTO `userinfo` VALUES ('1', 'admin', 'admin'); INSERT INTO `userinfo` VALUES ('2', 'user', 'user'); INSERT INTO `userinfo` VALUES ('3', 'pass', 'pass');


    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    斗码士

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值