mybatis入门

1.创建mybatis-config.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>
<properties resource="jdbc.properties"></properties>
<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>
<!-- 将mapper文件加入配置文件 -->
<mappers>
<mapper resource="com/yan/shop/model/User.xml"/>
</mappers>
</configuration>

2.根据数据表创建相应的实体类

package com.yan.shop.model;

public class User {

	private int id;
	private String username;
	private String password;
	private String nickname;
	private int status;
	private int type;
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	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;
	}
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
}

3.创建mapper文件完成对实体类的映射

<?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.yan.shop.model.User">
<insert id="add" parameterType="com.yan.shop.model.User"><!--可在mybatis.cofig.xml中设置类型别名,这边就可以简写-->
insert into t_user (username,password,nickname,type,status)
values(#{username},#{password},#{nickname},#{type},#{status});
</insert>
</mapper>

4.创建SQLSession,并且通过sqlSession完成对数据库系统操作


  
  
package com.yan.shop.test;
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;
import com.yan.shop.model.User;
public class testFirstMybatis {   public static void main(String[] args){      try {    //1.创建配置文件{mybatis-config.xml}的输入流    InputStream is=Resources.getResourceAsStream("mybatis-config.xml");    //2。创建SQLSessionFactory    SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);    //3.创建SQLSession    SqlSession session = factory.openSession();    //4.调用mapper文件差入数据    User u=new User();    u.setNickname("猪八戒");    u.setUsername("猪悟能");    u.setPassword("1234");    u.setType(0);        session.insert(User.class.getName()+".add",u);//session.insert("com.yan.shop.model.User.add",u);    session.commit();    session.close();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }       } }

jdbc.properties文件

username=root
password=123456
url=jdbc:mysql://localhost:3306/itat_shop
driver=com.mysql.jdbc.Driver


----------------------------------------------------------更新-----------------------------------------------------------

session.insert(User.class.getName()+".add",u);这个语句的参数我们是用字符串语句拼接的,很容易写错,我们可以使用基于mapper的方式解决这个问题。

为对应的实体类的xml添加mapper。例如为User.xml创建UserMapper接口,即映射

package com.yan.shop.mapper;

import com.yan.shop.model.User;

public interface UserMapper {
 public void add(User u);
}

这个接口方法映射对应着User.xml里的操作,因为User.xml就举一个添加例子,故UserMapper里也就只有一个add方法。

将User.xml的namespace改为和UserMapper相对应,即<mapper namespace="com.yan.shop.mapper.UserMapper">

这样我们就能把字符串拼接转成方法调用。

将session.insert(User.class.getName()+".add",u)改成session.getMapper(UserMapper.class).add(u);就可以了



有了对应的Mapper接口,我们还可以直接在方法上面写sql语句,即annotation方式,这个时候就不需要User.xml文件,在mybatis-cofig.xml里导入的mapper改为

<mappers>
<mapper class="com.yan.shop.mapper.UserMapper"/>
</mappers>

新的UserMapper

package com.yan.shop.mapper;

import org.apache.ibatis.annotations.Insert;

import com.yan.shop.model.User;

public interface UserMapper {
@Insert("insert into t_user (username,password,nickname,typ,status)value(#{username},#{password},#{nickname},#{typ},#{status});")
public void add(User u);
}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值