Mybatis02-数据库操作

  • 数据库操作

1.书写实体类javabean

package com.shxt.test;

public class User {

	private Integer user_id;
	private String user_name;
	private String password;
	private String account;
	public Integer getUser_id() {
		return user_id;
	}
	public void setUser_id(Integer user_id) {
		this.user_id = user_id;
	}
	public String getUser_name() {
		return user_name;
	}
	public void setUser_name(String user_name) {
		this.user_name = user_name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	@Override
	public String toString() {
		return "User [user_id=" + user_id + ", user_name=" + user_name + ", password=" + password + ", account="
				+ account + "]";
	}
	
}

注:数据库里面的字段名,类里面的属性名,input标签name值要一致 。

2.书写映射文件

  依次进行的是操作是查询List,通过传递参数查询某条用户数据,返回数据库User表中的数据条数,插入操作。

<?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="com.shxt.model.User">
	<select id="userList" resultType="map">
		select * from user	
	</select> 
  	<!-- 通过id返回数据 -->
	<select id="load" resultType="com.shxt.test.User" parameterType="integer">
		select * from user where user_id=#{user_id}	
	</select>
	<select id="count" resultType="integer">
		select count(*) from user	
	</select> 
	<insert id="add" parameterType="com.shxt.test.User" useGeneratedKeys="true" keyProperty="user_id">
		insert into user(user_name,password,account) values(#{user_name},#{password},#{account})
	</insert>   
  </mapper>

注:(1)resultType是sql映射文件中定义返回值类型,可以写全类名也可以写类型别名。若返回值为Map类型,resultType="map";若返回值是List类型,resultType=List中元素的类型;若返回值为POJO类,resultType=全类名。

(2)parameterType为传递的参数类型,也可以写类型别名,如parameterType="integer"。当传递参数的类型为List时,可以不写此属性。传递参数格式为:#{parameter}

(3)useGeneratedKeys="true" keyProperty="user_id" 表示后台能够接到表中传来的主键,使用的变量名为"user_id"。

 

3.书写测试类

package com.shxt.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;

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 MybatisTest {
	public static void main(String[] args) {
		SqlSession sqlSession = null;
		try {
			//加载核心配置文件
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			//创建sqlsession工厂 -->相当于connection
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
			//获取session -->相当于执行sql语句对象
			sqlSession = sqlSessionFactory.openSession();
			/*List<Map<String,Object>> userList = sqlSession.selectList("com.shxt.model.User.userList");
			System.out.println(userList);*/
			/*Integer count = sqlSession.selectOne("com.shxt.model.User.count");
			System.out.println(count);*/
			/*User user = new User();
			user.setAccount("admin11");
			user.setPassword("123456");
			user.setUser_name("Adian");
			sqlSession.insert("com.shxt.model.User.add",user);
			sqlSession.commit();
			System.out.println(user.getUser_id());*/
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			if(sqlSession!=null) {
				sqlSession.close();
			}
		}
	}
}

注:在进行插入操作时,如果只执行到 sqlSession.insert("com.shxt.model.User.add",user)操作,则只是把数据插入到表里,而没有执行保存操作。需要sqlSession.commit()提交事务进行保存。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值