mybatis入门(一)——初试mybatis
来源:互联网 发布:js toobject方法 编辑:程序博客网 时间:2024/06/05 06:26
mybatis介绍:
1. mybatis是一个持久层框架,是apache下的顶级项目;
2. 不完全的ORM框架。需要程序员自己去填写,但是也有输入和输出映射
3. 适用需求变化较多的项目,比如互联网项目
mybatis框架图:
1.mybatis的核心是sqlMapConfig.xml,可以利用它配置映射文件,以及一些属性,和别名。关于它的详细介绍,参见:sqlMapConfig.xml详解
2.sqlsessionFactory主要的作用:读取mybatis的核心配置文件,打开sqlsession
3.sqlsession主要通过读取mapper文件,操作数据库,selectone或selectlist,或者找到mapper类,通过mapper类操作数据。具体两种方式可参见:mybatis入门(三)——Mapper代理开发替代传统DAO层开发
4.executor是sqlsession的内容的执行器,用于操作数据库。
5.mapped statement主要是mapper.xml的中的对于sql语句的封装,包括输入和输出参数。
总而言之,mybatis的这种框架目的是为了更方便的获取输入的参数,得到输出的参数。
mybatis基础:
原生的jdbc方式:
package cn.itcast.mybatis.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * 原始的jdbc方式 * @author cyl * */public class JdbcTest { public static void main(String[] args) { //1.数据库连接 Connection connection=null; //2.预编译语句prepareStatement PreparedStatement preparedStatement=null; //3.结果集 ResultSet resultSet=null; try { //加载数据库的驱动 Class.forName("com.mysql.jdbc.Driver"); connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","1"); //定义sql语句 String sqlString="select * from user where username = ?"; preparedStatement=connection.prepareStatement(sqlString); //设置,参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数从序号2开始 preparedStatement.setString(1, "陈小明"); //向数据库发出sql语句查询,查询出结果集 resultSet=preparedStatement.executeQuery(); //遍历结果集: while (resultSet.next()) { System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //释放资源: //1.释放结果集 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e2) { e2.printStackTrace(); } } //2.释放prepareStatement if(preparedStatement!=null){ try { preparedStatement.close(); } catch (SQLException e2) { e2.printStackTrace(); } } //2.关闭连接 if(connection!=null){ try { connection.close(); } catch (Exception e2) { e2.printStackTrace(); } }} }}
原生的JDBC代码回存在什么问题?
数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。
将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。
- 向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。
- 从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。
Mybatis优点:
- 支持sql,存储过程以及高级映射;
- 避免几乎所有的原生JDBC的代码;
- 避免手动设置参数以及获取结果集;
- 支持输入和输出映射
感谢浏览,下面将介绍使用mybatis编程的方式,敬请关注!
- mybatis入门(一)——初试mybatis
- MyBatis(一)——mybatis入门
- Mybatis快速入门——Mybatis学习总结(一)
- [MyBatis]MyBatis入门(一)
- MyBatis入门(一)
- Mybatis入门(一)
- Mybatis入门(一)
- MyBatis入门(一)
- MyBatis入门(一)
- mybatis入门(一)
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- MyBatis学习总结(一)——MyBatis快速入门
- 日记—9.24
- NAT网络地址转换
- 消息队列中间件之ActiveMQ初识
- solr(二)Using SolrJ
- 实验一线性表的基本操作及其应用
- mybatis入门(一)——初试mybatis
- 怎样理解阻抗匹配?---非常好
- 【python 数据报表】发送带有样式和附件的邮件
- java lock
- 第四周总结
- 2017-9-24离线赛总结
- 动态规划
- .NET常用术语表
- shell编程总结