mybatis框架(入门方法,dao层原始开发方法,mapper代理开发)(sqlserver数据库)

1.入门方法

第一步:mybatis全局环境配置  configurs.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="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=JSP" />
<property name="username" value="sa" />
<property name="password" value="5201314" />
<property name="poolMaximumActiveConnections" value="50" />
</dataSource>
</environment>
</environments>

<!-- 加载mapper文件 -->
<mappers>
<mapper resource="./map/select.xml" />
</mappers>

</configuration>

第二步:编写映射文件   map.xml

1.mapper中的namespace在一般使用和dao层原始开发可以随意起名,在mapper代理有特殊要求

2.parameterType,输入占位符的类型

3.#{} 占位符,里面的名字随意,输出类型为javabean类型时,里面的参数名字等于javabean的属性名

4.resultType,输出类型

5.map.xml需要在 configurs.xml  文件中的<mappers>标签中声明

<?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="test" >

<!--查询 -->
<select id="selectUser" parameterType="String" resultType="JavaBean.information">
select * from information where id= #{id}
</select>
<!-- 删除 -->
<delete id="DeleteUsre" parameterType="String">
delete from information where id=#{deleteid}
</delete>
<!-- 插入 -->
<insert id="InsertUser" parameterType="JavaBean.information">
insert into information(id,name,tel,acc,pass) values(#{id},#{name},#{tel},#{acc},#{pass})
</insert>
</mapper>

第三步:建java类,用会话工厂操作映射文件

关键代码:

//configurs.xml的位置
String res="mybatisconfigurs/mybatis.xml";

InputStream inp= Resources.getResourceAsStream(res);
//建立工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inp);

SqlSession session = factory.openSession();

查询用户方法的代码:

//查询用户
public information selectuesr(String id) throws IOException {

//configurs.xml的位置
String res="mybatisconfigurs/mybatis.xml";

InputStream inp= Resources.getResourceAsStream(res);
//建立工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inp);

SqlSession session = factory.openSession();

information inf= session.selectOne("test.selectUser", id);//map.xml namespacec+SQLid

session.commit();

session.close();

return inf;

}

2.dao层原始开发

一:编写dao接口

package dao;

import JavaBean.information;

public interface dao {
//查询用户
public information SelestUser(String id);
//添加用户
public void InsertUser(information inf);
//删除用户
public void DeleteUser(String id);

}

二:编写接口类

package dao;

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

import JavaBean.information;

public class usedao implements dao{

SqlSessionFactory factory;

public usedao( SqlSessionFactory factory) {
this.factory=factory;
}

//查询用户
public information SelestUser(String id) {
SqlSession session = factory.openSession();
information inf= session.selectOne("test.selectUser", id);
session.commit();
session.close();
return inf;

}

@Override
public void InsertUser(information inf) {
SqlSession session = factory.openSession();

session.insert("test.InsertUser", inf);

session.commit();

session.close();

System.out.println("插入成功");

}

@Override
public void DeleteUser(String id) {

SqlSession session = factory.openSession();

session.delete("test.DeleteUsre", id);

session.commit();

session.close();

System.out.println("删除成功");

}

}

三:使用接口类

提供工厂实类

String res="mybatisconfigurs/mybatis.xml";

InputStream inp= Resources.getResourceAsStream(res);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inp);

package dao;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import JavaBean.information;

public class test {
public static void main(String[] args) throws IOException {

String res="mybatisconfigurs/mybatis.xml";

InputStream inp= Resources.getResourceAsStream(res);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inp);

usedao dao=new usedao(factory);

dao.DeleteUser("445201199901100075");

}

}

3.mapper动态代理

4大规范

映射文件map.xml中的<mapper namespace="mapper.usemap" >   namespace=dao接口类的位置

dao接口类的方法的方法名于SQLid一样

dao接口类的方法返回类型于SQL一样

dao接口类的方法参数于SQL一样

一.编写映射文件

<?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="mapper.usemap" >

<!--查询 -->
<select id="SelectUser" parameterType="String" resultType="JavaBean.information">
select * from information where id= #{id}
</select>
</mapper>

二.编写接口类

package mapper;

import JavaBean.information;

public interface usemap {

public information SelectUser(String id)throws Exception;

}

三. 使用接口类

package dao;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import JavaBean.information;

public class test {
public static void main(String[] args) throws IOException {

String res="mybatisconfigurs/mybatis.xml";

InputStream inp= Resources.getResourceAsStream(res);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inp);

usedao dao=new usedao(factory);

}

}

原文地址:https://www.cnblogs.com/miwujun/p/12262343.html

时间: 2024-10-09 07:54:26

mybatis框架(入门方法,dao层原始开发方法,mapper代理开发)(sqlserver数据库)的相关文章

mybatis入门基础(二)----原始dao的开发和mapper代理开发

阅读目录 一:原始dao开发方法 二:mapper代理方法(只需要mapper接口,相当于dao接口) 承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先苦后甜嘛! 回到顶部 一:原始dao开发方法 概要:1.在上篇中搭建好的框价中编写dao接口和dao实现类 2.向dao接口实现类中注入SqlSessionFactory,在方法体内通过SqlSe

Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发(转发同上)

前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)--MyBatis的基础知识.MybatisFirst中存在大量重复的代码.这次简化下代码: 原地址:http://www.cnblogs.com/shanheyongmu/p/7121016.html 使用MyBatis开发Dao,通常有两种方法,即原始Dao开发方法和Mapper接口开发方法. 1.SqlSession使用范围 1.1 SqlsessionFactoryBuilder 通过SqlSessionFac

【转】Mybatis学习---MyBatis知识、原始Dao开发和mapper代理开发

[原文]https://www.toutiao.com/i6594610137560777223/ 一.什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.它对jdbc的操

Mybatis入门---dao开发和mapper代理开发

在说mabatis之前,先说说单独使用jdbc编程的缺陷. jdbc编程的大概流程大家都很清楚,基本分为以下几步: 加载数据驱动 创建并获取数据库连接 创建jdbc statement对象 设置sql语句,并设置sql语句中的参数 通过statement执行sql并获取结果 对执行的结果进行解析处理 释放资源 1 public static void main(String[] args) { 2 Connection connection = null; 3 PreparedStatement

Mybatis框架三:DAO层开发、Mapper动态代理开发

这里是最基本的搭建:http://www.cnblogs.com/xuyiqing/p/8600888.html 接下来做到了简单的增删改查:http://www.cnblogs.com/xuyiqing/p/8601506.html 但是发现代码重复过多等问题 接下来整合并实现DAO开发: 一:原始DAO开发: package dao; import pojo.User; public interface UserDao { public User selectUserById(Integer

mybatis框架入门

初识mybatis 对原生jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理 mybatis入门程序 用户的增删查改 mybatis开发dao两种方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发方法 mybatis配置文件SqlMapConfig.xml mybatis核心 mybatis输入映射 mybatis输出映射 mybatis的动态sql 第二天 订单商品的数据分析 改机映射(一对一.一对多

spring和mybatis的整合(包含原始dao的整合方式和mapper代理整合方式)

一.原始dao的开发的整合方式 1.引入jar包 spring的jar包 mybatis的jar包 由mybatis提供的mybatis和spring的整合jar包(mybatis-spring-xxx.jar) mysql的驱动jar包(mysql-connector-java-5.1.22-bin.jar) c3p0数据源的jar(c3p0-0.9.5.1.jar) 2.引入配置文件和dao的实现代码 结构如下: UserDao接口的代码 package com.si.demo.dao; i

用mybatis实现dao的编写或者实现mapper代理

一.mybatis和hibernate的区别和应用场景hibernate:是一个标准的ORM框架(对象关系映射).入门门槛较高的,不需要写sql,sql语句自动生成了.对sql语句进行优化.修改比较困难的.应用场景:使用与需求变化不多的中小型项目,比如:后台管理系统,erp.orm.oamybatis:专注是sql本身,需要程序员写sql,修改优化比较方便.也可以实现映射.应用场景:使用需求变化较多的项目,比如:互联网项目, 二.实现dao的编写(以user为例) 1.编写userDAO pac

第二节 Mapper代理开发模式

一:原始的开发dao 实际开发中,我们程序员需要写dao接口和dao的实现类. 1.1 dao接口 1.2 dao实现类 1.3 测试类 总结: 在dao接口实现类方法存在很大大量重复的方法,这样会增加程序员的代码量 调用sqlsession方法时将statement的id硬编码了 比如我根据用户的id查找用户 调用SqlSession调用增删改查的方法时,由于该方法的变量类型使用的泛型,这就在编译阶段,即使类似错误,也不会报错,不利于开发维护 二:mapper代理开发---->相当于一个dao