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

青岛哪里有做网站公司的mvc个人网站怎么做

青岛哪里有做网站公司的,mvc个人网站怎么做,住房和城乡建设部网站主页,长沙市网站制作多少钱Mybatis MyBatis本质上就是对JDBC的封装#xff0c;通过MyBatis完成CRUD。而对于JDBC#xff0c;SQL语句写死在Java程序中#xff0c;不灵活。改SQL的话就要改Java代码。违背开闭原则OCP。对于事务机制#xff0c;MyBatis支持 或managed模式#xff0c;JDBC模式中MyBatis…Mybatis MyBatis本质上就是对JDBC的封装通过MyBatis完成CRUD。而对于JDBCSQL语句写死在Java程序中不灵活。改SQL的话就要改Java代码。违背开闭原则OCP。对于事务机制MyBatis支持 或managed模式JDBC模式中MyBatis将事物委托给JDBC管理managed模式中MyBatis不再管理事务此时可以使用Spring框架等管理事务否则程序根本不支持事务这是不推荐的。MyBatis属于半自动化ORM框架虽然不会全自动生成但是可调行高易于debug。将接口和 Java 的 POJOs(Plain Ordinary Java Object简单普通的Java对象)映射Mapping成关系型数据库Relational中的记录 1.新建Mybatis项目 ●步骤1pom.xml中声明打包方式jar不需要war因为mybatis封装的是jdbc。 ●步骤2引入依赖mybatis依赖 mysql驱动依赖 ●步骤3在resources根目录下新建mybatis-config.xml配置文件可以参考mybatis手册拷贝 注意1mybatis核心配置文件的文件名不一定是mybatis-config.xml可以是其它名字。 注意2mybatis核心配置文件存放的位置也可以随意。这里选择放在resources根下相当于放到了类的根路径下。 ●步骤4在resources根目录下新建CarMapper.xml配置文件可以参考mybatis手册拷贝 注意1sql语句最后结尾可以不写“;” 注意2CarMapper.xml文件的名字不是固定的。可以使用其它名字。 注意3CarMapper.xml文件的位置也是随意的。这里选择放在resources根下相当于放到了类的根路径下。 注意4将CarMapper.xml文件路径配置到mybatis-config.xml ●步骤5编写mybatis程序myBatisIntroductionTest代码 注意1默认采用的事务管理器是JDBC。JDBC事务默认是不提交的需要手动提交。 注意2:在mybatis中,执行sql语句的对象叫做SqlSession,是Java程序和数据库之间的一次会话. 而要获取SqlSession对象–先获取SqlSessionFactory对象–通过SqlSessionFactoryBuilder对象的Build方法,获取一个SqlSessionFactory对象. ●步骤6运行程序查看运行结果以及数据库表中的数据 结构为 新建一个空项目然后新建一个空白模块 项目设置中更改默认Maven设置setting.xml设置 pom.xml中添加打包方式,依赖(mybatis,mysql) packagingjar/packagingdependencies!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.10/version/dependency!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-java --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version/dependency在Main根目录下resources文件夹新建 mybatis-config.xml 文件mybatis核心配置文件只有一个 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver value${com.mysql.cj.jdbc.Driver/property nameurl value${jdbc:mysql://localhost:3306/carreseller}/property nameusername value${root}/property namepassword value${Mysql998168}//dataSource/environment/environmentsmappers !-- 说明欲执行的mapper文件的存放位置-- !-- 从根目录下开始查找因此如果mapper文件就放在根目录下则不用写出具体路径--mapper resourceCarMapper.xml//mappers /configuration编写xxxMapper.xml(mybatis配置文件,多个,每个mapper文件对应一个表) ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceTBDinsert idinsert into t_car(id,car_num,brand,guide_price,produce_time,car_type)values(null,1003,toyota,30.00,2000-10-11,燃油车)/insert /mapperpackage com.sunsplanter.mybatis.test;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 java.io.FileInputStream; import java.io.IOException; import java.io.InputStream;public class MyBatisIntroductionTest {public static void main(String[] args) throws IOException {SqlSession sqlSession null;try {// 获取对象的顺序为SqlSessionFactoryBuilder-》SqlSessionFactory-》SqlSession//每个数据库中,这三者的关系是:1:1:nSqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();//MyBatis包含了一个Resources类用Resources类调方法,默认从类的根目录下开始找,因此如果mybatis-config.xml就放在Resources目录下,直接写名字就可以InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml);//mybatis核心配置文件的路径SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(inputStream);sqlSession sqlSessionFactory.openSession();//执行SQL语句,执行的语句在xxxMapper.xml中,并且并非一次执行完一个Mapper的全部代码// 因此通过id为参数,定位要执行的具体SQL代码块//insert可选返回值,返回值代表影响数据库中表项的个数.int count sqlSession.insert(insertCar);System.out.println(count);//当mybatis-config.xml中transactionManager typeJDBC/时即将事务机制交给JDBC管理//而JDBC的autoCommit是false的因此必须要sqlSession.commit手动提交因此说此时sqlSession对象不支持自动提交。sqlSession.commit();} catch (Exception e) {// 回滚if (sqlSession ! null) {sqlSession.rollback();}e.printStackTrace();} finally {// 6.关闭if (sqlSession ! null) {sqlSession.close();}}} }引入Junit 引入Junit是为了替代main方法可以单独测试各个单元。 ● 使用JUnit步骤 ○ 第一步引入依赖 !-- junit依赖 -- dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope /dependency○ 第二步编写单元测试类【测试用例】测试用例中每一个测试方法上使用Test注解进行标注。 ■ 测试用例的名字以及每个测试方法的定义都是有规范的 ● 测试用例类的名字XxxTest ● 测试方法声明格式public void test业务方法名(){} // 测试用例 public class CarMapperTest{ // 测试方法 Test public void testInsert(){}Test public void testUpdate(){}} ○ 第三步可以在类上执行也可以在方法上执行 ■ 在类上执行时该类中所有的测试方法都会执行。 ■ 在方法上执行时只执行当前的测试方法。 引入日志文件 在mybatis-config.xml中的environments 标签前可添加settings标签若有则相对位置必须要settings在前是否开启日志开启何种日志就是其中一种setting。 logback作为一个框架实现了SLF4J标准因此尽管setting中选择的日志是SLF4J等会导入依赖还是导入logback。 settingssetting namelogImpl valueSLF4J //settings使用logback先添加依赖 dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.11/versionscopetest/scope/dependencylogback实现包含了SLF4J从依赖的关系中就可以看出来 第二步引入logback相关配置文件文件名必须叫做logback.xml或logback-test.xml放到类路径当中 ?xml version1.0 encodingUTF-8?configuration debugfalse!-- 控制台输出 --appender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/pattern/encoder/appender!-- 按照每天生成日志文件 --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名--FileNamePattern${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log/FileNamePattern!--日志文件保留天数--MaxHistory30/MaxHistory/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/pattern/encoder!--日志文件最大的大小--triggeringPolicy classch.qos.logback.core.rolling.SizeBasedTriggeringPolicyMaxFileSize100MB/MaxFileSize/triggeringPolicy/appender!--mybatis log configure--logger namecom.apache.ibatis levelTRACE/logger namejava.sql.Connection levelDEBUG/logger namejava.sql.Statement levelDEBUG/logger namejava.sql.PreparedStatement levelDEBUG/!-- 日志输出级别,logback日志级别包括五个TRACE DEBUG INFO WARN ERROR --root levelDEBUGappender-ref refSTDOUT/appender-ref refFILE//root/configuration此时再次执行代码控制台会输出更详细的反馈包括执行了哪条SQL语句。
http://www.hkea.cn/news/14301803/

相关文章:

  • 杭州便宜的手机网站建设wordpress仿堆糖
  • 网站建设会销互联网之光博览会预约
  • 网站有了如何做推广环保网站主题
  • 北京礼品网站建设新手怎么学做电商
  • 乾安网站建设哪家好全球跨境电商平台排行榜前十名
  • 巩义建设网站怎样写网站描述
  • 豆芽网站建设 优帮云昌平知名的网站制作建设报价
  • 网站备案前置审批文件wordpress还是hexo
  • 手机免费建站app做漫画的网站有哪些
  • 做网站已经不行0成本无货源开网店
  • 浙江电商网站建设销售网站做我女朋友
  • python自学网站南宁 网站建设
  • 网站建设与网页设计课程设计西安网站建设推广服务
  • 肥城移动网站制作自己可以设计装修的软件
  • 24小时学会网站建设pdf工信部备案查询企业名单
  • 建筑图集网站erp沙盘模拟实训报告
  • 四川省建设厅网站投诉淘宝宝贝关键词排名查询工具
  • 网站建设宣传册内容sem和seo是什么
  • 山西微网站建设设计电子商务网站方式
  • 相城区建设局网站京津冀协同发展英语
  • 网站建设服务商24小时接单h5设计软件
  • 网站收录了文章不收录网页设计说明书1000字
  • 网站程序源代码天津建设工程信息网官罿
  • 网站的标题优化怎么做网站涉及敏感视频等该怎么做
  • 企业网站如何提高茂名h5网站建设
  • 青岛 机械 中企动力提供网站建设网页设计模板html代码表格
  • 棋牌软件开发多少钱优化关键词是什么意思
  • 常见的有利于seo的网站系统人社通成都app下载
  • 建设一个旅游网站的目的是什么自动识别手机和电脑版本网站
  • 在线网站流量查询前端自适应模板