当前位置: 首页 > news >正文

800多块做网站有没有好用的网站推荐

800多块做网站,有没有好用的网站推荐,wordpress主题好看的,企业网址平台目录 一、JDBC编程和ORM模型 1. JDBC回顾 2. JDBC的弊端 3. ORM模型 Mybatis和hibernate 区别: 4. mybatis 解决了jdbc 的问题 二、MyBatis简介 1. MyBatis快速开始 1.1 导入jar包 1.2 引入 mybatis-config.xml 配置文件 1.3 引入 Mapper 映射文件 1.3 测试 …目录 一、JDBC编程和ORM模型 1. JDBC回顾 2. JDBC的弊端  3. ORM模型 Mybatis和hibernate 区别:  4. mybatis 解决了jdbc 的问题 二、MyBatis简介 1. MyBatis快速开始  1.1 导入jar包 1.2 引入 mybatis-config.xml 配置文件  1.3 引入 Mapper 映射文件  1.3 测试 2. 实现增删改查 1. 导入jar包  配置文件等 2. 创建 MyBatisUtil 类 3. 完成增删改查功能 4. 测试类 三、MyBatis生命周期 四、总结 一、JDBC编程和ORM模型 1. JDBC回顾 加载驱动 导入JDBC 连接数据库的 jar 包利 用 CLASS.forName 加载驱动获取连接 利用DriverManager 获取 Connection然后创建 Statement执行SQL语句 利用 Statement 执行 SQL 语句并结 合 ResultSet 处理结果集映射 Java 对象关闭资源 先开后关的顺序关闭 ResultSet StatementConnection 等资源。 2. JDBC的弊端  硬编码SQL语句存在Java代码中不能很好的分离数据库语句和 Java语句造成代码不易维护代码重复度高 量的重复代码以 ResultSet 为例每次都需要重复解析结果集底层技术JDBC属于底层的技术不支持分布式缓存等技术对于复杂场景的应对不好SQL参数固定SQL语句的参数固定使得SQL语句不灵活无法满足多变的场景。 Jdbc的本质 JDBC是SUN公司制定的一套接口interface目的解耦合——降低程序的耦合度提高程序的扩展力 3. ORM模型 ORM 模型是数据库的表和简单 Java 对象Plain Ordinary Java Object简称 POJO就是javabean的映射关系模型主要解决数据库数据和 POJO 对象的相互映射。  Java对象POJO 对象Plain Ordinary Java Object 简单的 Java 对象实际就是 普通 JavaBeans。映射配置配置分为类与数据库中表 的映射对象与表中记录的 映射类的属性与数据库中 表的字段的映射。数据库按照数据结构来组织、存储 和管理数据的仓库ORM 模型中最底层的内容。 OBject Relation Mapping 对象关系映射 对象指的是面向面向对象关系指的是数据库中的表 例如Java语言中的POJO类与数据库模型之间的对应关系。 常见的ORM模型 Hibernate Hibernate 是一个 全自动 的ORM 模 型Hibernate 可以自动生成 SQL 语 句自动执行MyBatis MyBatis 是一款 半自动 的ORM 模型它支持定制化SQL、存储过程以及高级映射. Mybatis和hibernate 区别:  Hibernate是全自动化ORM Mybatis是半自动化ORM。Hibernate简化dao层不用考虑SQL语句的编写和结果映射重点放在业务逻辑上 Mybatis需要手写SQL语句以及结果映射。Hibernate是一个重量级的框架内部生成SQL语句反射操作太多导致性能下降; Mybatis是一个轻量级的框架需要自己写sql语句有较少的反射操作。Hibernate 不方便做SQL优化遇到较复杂的SQL语句需要绕过框架实现复杂 对多字段的结构进行部分映射困难;                                                                                        Mybatis 不仅可以做SQL优化还可以SQL与Java分离还可以自行编写映射关系 复杂的SQL语句Mybatis效率更高 Mybatis优势 可以进行更细致的SQL优化容易掌握 Hibernate优势 dao层开发比mybatis简单mybatis需要维护SQL和结果映射 hibernate数据库移植性好 4. mybatis 解决了jdbc 的问题 1.数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能如果使用数据库连接池可解决此问题。                                                                                                        解决在SqlMapConfig.xml中配置数据连接池使用连接池管理数据库链接。2.Sql语句写在代码中造成代码不易维护实际应用sql变化的可能较大sql变动需要改变java代码。                                                                                                                    解决将Sql语句配置在XXXXmapper.xml文件中与java代码分离。3.向sql语句传参数麻烦因为sql语句的where条件不一定可能多也可能少占位符需要和参数一一对应。                                                                                                        解决Mybatis自动将java对象映射至sql语句通过statement中的parameterType定义输入参数的类型。4.对结果集解析麻烦sql变化导致解析代码变化且解析前需要遍历如果能将数据库记录封装成pojo对象 解析比较方便。                                                                              解决Mybatis自动将sql执行结果映射至java对象通过statement中的resultType定义输出结果的类型。 二、MyBatis简介 为什么选择MyBatis  简单易学易于学习易于使用通过文档和源 代码可以比较完全的掌握它的设计 思路和实现灵活度高通过定制 SQL 语句可以比较灵活的 访问数据库获取数据功能完整提供了连接管理缓存支持线程支 持分布式事务管理等功能还 提供了其他 ORM 模型的支持。         MyBatis是一款ORM模型支持定制化SQL、存储过程以及高级映射。可以使用简单的 XML 或注解来配置和映射 原生信息将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录 半自动化 支持定制化SQL、存储过程以及高级映射集成方便 不仅方便 Spring 等 JavaEE 框架的集成还与其他 ORM 模型集成也很方便。 1. MyBatis快速开始  1.1 导入jar包 同之前一样  1.2 引入 mybatis-config.xml 配置文件  该配置文件主要是连接数据库所需的配置信息 放到src下 1.3 引入 Mapper 映射文件  配置 SQL语句和映射的配置文件放到mapper包下配置文件前面不能有空格 1.3 测试 javabean 主要作用 传递数据  不属于任何层  Student类 public class Student {//属性 对应 数据库中的字段 ---名字一致 类型一致//长像相似就行private int sid;private String snameString;private Date birthday;//这里日期是java.util.Date 包下private String ssex;private int classid;get/set方法省略构造方法省略 } public class TestFirst {public static void main(String[] args) throws IOException {// 1. 加载驱动// 2. 获取连接// 3. sql语句 --执行// 处理逻辑// 解析结果集// 4. 释放资源// 1. 加载配置文件InputStream resourceAsStream Resources.getResourceAsStream(mybatis-config.xml);// 2. 工厂来获取工厂对象SqlSessionFactory sessionFactory new SqlSessionFactoryBuilder().build(resourceAsStream);// altshiftl// 3. 通过工厂生产产品SqlSession sqlSession sessionFactory.openSession();// 4. 产品的功能 // sqlSession.insert(null); // sqlSession.update(null); // sqlSession.delete(null); // sqlSession.selectOne(null); -- 查询一个对象 // sqlSession.selectList(null); -- 查询多个对象// 查询所有学生信息ListStudent sList sqlSession.selectList(chaxunxuesheng);// 测试sList.forEach(System.out::println);// 释放资源sqlSession.close();}  测试成功 在mybatis中 所有的id 不允许重复 不然mybatis 直接报错 就是上面的 chuangjianxuesheng 2. 实现增删改查 1. 导入jar包  配置文件等 主配置文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configuration!-- 和spring整合后 environments配置将废除 --environments defaultdevelopmentenvironment iddevelopment!-- 使用jdbc事务管理 --transactionManager typeJDBC /!-- 数据库连接池 --dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver /property nameurlvaluejdbc:mysql://localhost:3306/myhomework03?serverTimezoneGMT /property nameusername valueroot /property namepassword value123456 //dataSource/environment/environmentsmappersmapper resourcecom/zkt/mapper/StudentMapper.xml //mappers /configurationStudentMapper代码 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacetest select idquanchaxuesheng resultTypecom.zkt.bean.Studentselect * from student /select select iddanchaxuesheng resultTypecom.zkt.bean.Student parameterTypeintselect * from student where sid #{v} /select insert idtianjiaxuesheng parameterTypecom.zkt.bean.Studentinsert into student(sname,birthday,ssex,classid)values(#{sname},#{birthday},#{ssex},#{classid}) /insert delete idshanchuxuesheng parameterTypeintdelete from student where sid #{v} /delete update idxiugaixuesheng parameterTypecom.zkt.bean.Studentupdate studentset sname #{sname},birthday #{birthday},ssex #{ssex},classid #{classid} where sid #{sid} /update /mapper 2. 创建 MyBatisUtil 类 用来创建 MyBatis的数据库SqlSession会话类 创建 SqlSession 类访问数据库创建出 SqlSession后利用 SqlSession访问数据库 public class DaoUtil {private static SqlSessionFactory factory;static {try {InputStream resourceAsStream Resources.getResourceAsStream(mybatis-config.xml);factory new SqlSessionFactoryBuilder().build(resourceAsStream);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//执行对象public static SqlSession getSqlSession() {return factory.openSession();}//资源释放public static void closeResource(SqlSession sqlSession) {sqlSession.close();} 3. 完成增删改查功能 要与配置文件中一致 增删改 没有resulttype 只有查询有 public class StudentDaoImpl implements IStudentDao {Overridepublic int addStudent(Student s) {SqlSession sqlSession DaoUtil.getSqlSession();int ret sqlSession.insert(tianjiaxuesheng, s);// 事务 -- 增删改if (ret 0) {sqlSession.commit();} else {sqlSession.rollback();}DaoUtil.closeResource(sqlSession);return ret;}Overridepublic int updateStudent(Student s) {SqlSession sqlSession DaoUtil.getSqlSession();int ret sqlSession.update(xiugaixuesheng, s);// 事务 -- 增删改if (ret 0) {sqlSession.commit();} else {sqlSession.rollback();}DaoUtil.closeResource(sqlSession);return ret;}Overridepublic int deleteStudent(int sid) {SqlSession sqlSession DaoUtil.getSqlSession();int ret sqlSession.delete(shanchuxuesheng, sid);// 事务 -- 增删改if (ret 0) {sqlSession.commit();} else {sqlSession.rollback();}DaoUtil.closeResource(sqlSession);return ret; }Overridepublic Student findStudentBySid(int sid) {SqlSession sqlSession DaoUtil.getSqlSession();Student s sqlSession.selectOne(danchaxuesheng, sid);DaoUtil.closeResource(sqlSession);return s;}Overridepublic ListStudent findAllStudent() {SqlSession sqlSession DaoUtil.getSqlSession();ListStudent sList sqlSession.selectList(quanchaxuesheng);DaoUtil.closeResource(sqlSession);return sList;}}4. 测试类 public class Test {public static void main(String[] args) {IStudentDao isd new StudentDaoImpl(); // ListStudent sList isd.findAllStudent(); // sList.forEach(System.out::println);// Student s isd.findStudentBySid(5); // System.out.println(s);// Student s1 new Student(); // s1.setSname(刘备); // s1.setSsex(男); // s1.setBirthday(new Date()); // s1.setClassid(2); // int ret isd.addStudent(s1); // if (ret0) { // System.out.println(添加成功); // }else { // System.out.println(添加失败); // }// int retisd.deleteStudent(13); // if (ret0) { // System.out.println(删除成功); // }else { // System.out.println(删除失败); // }Student s2 new Student();s2.setSid(9);s2.setSname(张飞);s2.setSsex(女);s2.setBirthday(new Date());s2.setClassid(1);int ret isd.updateStudent(s2);if (ret0) {System.out.println(修改成功);}else {System.out.println(修改失败);}} } 全部查询单个查询添加 删除 修改 三、MyBatis生命周期 SqlSessionFactoryBuilder 构造器会根据配置信息 生成 SqlSessionFactory。 SqlSessionFactory 利用工厂模式生产 SqlSession SqlSession 既可以发送 SQL 语句去 执行并返回结果也可以 获取 Mapper 的接口 SQL Mapper 映射器给出对应的 SQL 和映射规则负责 发送 SQL 和处理结果 1读取MyBatis 配置文件mybatis-config.xml 为 MyBatis 的全局配置文件配置了 MyBatis 的运行环境等信息例如数据库连接信息。2加载映射文件。映射文件即SQL 映射文件该文件中配置了操作数据库的SQL 语句 需要在MyBatis 配置文件mybatis-config.xml 中加载。mybatis-config.xml 文件可以 加载多个映射文件每个文件对应数据库中的一张表。3构造会话工厂通过MyBatis 的环境等配置信息构建会话工厂SqlSessionFactory。4创建会话对象由会话工厂创建SqlSession 对象该对象中包含了执行SQL 语句的 所有方法。5Executor 执行器MyBatis 底层定义了一个 Executor 接口来操作数据库它将根据 SqlSession 传递的参数动态地生成需要执行的SQL 语句同时负责查询缓存的维护。6MappedStatement 对象在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数该参数是对映射信息的封装用于存储要映射的SQL 语句的id、参数等信息。7输入参数映射输入参数类型可以是Map、List 等集合类型也可以是基本数据类型 和POJO 类型。输入参数映射过程类似于JDBC 对preparedStatement 对象设置参数 的过程。 8输出结果映射输出结果类型可以是Map、List 等集合类型也可以是基本数据类 型和POJO 类型。输出结果映射过程类似于JDBC 对结果集的解析过程。 四、总结 • 什么是 ORM          • 对象关系映射,用于实现面向对象编程语言里不同类型系统的数据之间的转换 • MyBatis 的优势          • 简单易学灵活度高功能完整 • MyBatis 的生命周期         • SqlSessionFactoryBuilderSqlSessionFactorySqlSessionSQL Mapper
http://www.zqtcl.cn/news/883396/

相关文章:

  • 可以建网站的软件南昌seo代理商
  • 手机网站建设宽度中小型企业网站模板
  • 网站开发需要的所有技术中信建设有限责任公司历任董事长
  • 安徽省建设干部学校网站首页做软件是什么工作
  • 图书馆网站设计方案安徽质量工程建设网站
  • 电子商务网站建设效果那个网站可以做链接
  • 怎样做投资与理财网站网页设计优秀案例分析
  • 网站制作需要学什么搜狗网页版入口
  • html源码网seo搜索优化工程师招聘
  • 做的网站在小窗口中怎么保持中间广东省公共资源交易中心地址
  • 合肥做网站汇站网织梦网站广告代码教程
  • 复兴专业做网站wordpress搬家502
  • 代做毕网站淘宝权重查询
  • 有专做高端折扣女装的网站吗大连最好的做网站的公司
  • 网站需求嘉兴seo关键词优化
  • 自己开发微网站上海成品网站
  • 国外对企业网站开发的研究山西住房与城乡建设厅定额网站
  • 国家工信部网站备案postfix wordpress
  • 兴宁电子商务网站建设网站模板在线制作
  • 汕头整站优化营销推广网
  • 云服务器搭建网站教程加盟教育培训机构
  • 建筑网站设置工资单人换了怎么换太原做网站找谁
  • 网站做推广需要什么条件重庆网站推广哪家服务好
  • 怎样做理财网站wordpress做产品页教程视频
  • 官网模板建站塔山双喜北京网站建设兴田德润官网多少
  • 网站优化推广外包深圳专业网站建设定制
  • 网站开发aichengkeji元凤建盏简介
  • 移动端网站怎么制作asp做的网站如何发布
  • 做的网站用户密码在哪里找凡科申请的网站和qq空间一样吗
  • 如何自己做网站发布到服务器上面wordpress没有幻灯片