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

描述个人网站的建站过程济南网站建设咨询电话

描述个人网站的建站过程,济南网站建设咨询电话,广西建设厅网站招 标 信 息,南京网站建设开发公司从昨天开始对mybatis突然有了很深的兴趣#xff0c;主要原因在于这几天的项目采用的是smm#xff0c;以后使用mybatis的概率也是非常大#xff0c;抱着一劳永逸的想法#xff0c;选了这几天的黄道吉日就把mybatis给办了吧。笔记主要参考mybatis的官网#xff0c;在此给出链…  从昨天开始对mybatis突然有了很深的兴趣主要原因在于这几天的项目采用的是smm以后使用mybatis的概率也是非常大抱着一劳永逸的想法选了这几天的黄道吉日就把mybatis给办了吧。笔记主要参考mybatis的官网在此给出链接以防忘记http://www.mybatis.org/mybatis-3/zh/getting-started.html. 一、maven依赖   maven中使用mybatis十分简单只需要指定依赖即可可以省去很多麻烦。maven是十分方便且简单的代码管理工具可以省去很多找资源的时间想起之前为了搭建ssh框架四处找依赖包心疼自己一秒。比学习更重要的是眼界使用一些有用的工具可以是开发效率事半功倍以此为戒 1 dependency 2 groupIdorg.mybatis/groupId 3 artifactIdmybatis/artifactId 4 versionx.x.x/version 5 /dependency mybatis依赖包   二、构造SqlSessionFactory 每个基于mybatis的应用都是以一个SqlSessionFactory的实例为中心的。通过SqlSessionFactory可以构造出Session通过Session可以与后端数据库进行交互因此SqlSessionFactory是业务逻辑与后端数据库进行沟通的关键桥梁。Session的生命周期较短并且不安全因此每个线程都应该有自己的SqlSession实例。SqlSssion的最佳作用域是请求或方法作用域。而SqlSessionFactory对于每次请求都要建立一个Sqlsession因此SqlSessionFactory的生命周期应为应用的生命周期。SqlSessionFactory贯穿这个应用因此构造SqlSessionFactory是一个关键所在。mybatis提供了两种构造途径。 1、通过xml构造SqlSessionFactory推荐 对于SqlSessionFactory的相关配置可以定义在mybatis-config.xml中通过输入流inputStream可以读取文件中的内容。SqlSessionFactoryBuilder拥有一个静态方法build接收一个输入流并返回SqlSessionFactory。至此SqlSessionFactoryBuilder完成任务一般情况下SqlSessionFactoryBuilder只出现少数几次。 //mybatis-config.xml的一般配置?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${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment/environmentsmappersmapper resourceorg/mybatis/example/BlogMapper.xml//mappers /configuration   1 String resource org/mybatis/example/mybatis-config.xml; 2 InputStream inputStream Resources.getResourceAsStream(resource); 3 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);  2、通过Java代码构建SqlSessionFactory较少使用 对于上面mybatis-config.xml文件中的配置java都提供了相对于的类用于SqlSessionFactory的配置。很容易可以猜到一个标签对应一个类标签的包含关系对应于类的依赖关系。因此使用到的类主要有ConfigurationEnvironmentTransactionFactoryMapper以及DataSource。代码如下 1 DataSource dataSource BlogDataSourceFactory.getBlogDataSource(); 2 TransactionFactory transactionFactory new JdbcTransactionFactory(); 3 Environment environment new Environment(development, transactionFactory, dataSource); 4 Configuration configuration new Configuration(environment); 5 configuration.addMapper(BlogMapper.class); 6 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(configuration);     三、SqlSession与Mapper 1、获取SqlSession。Sqlsession可以通过前面构建的SqlSessionFactory获得调用openSession返回一个SqlSession类 SqlSession session sqlSessionFactory.openSession(); try {Blog blog (Blog) session.selectOne(org.mybatis.example.BlogMapper.selectBlog, 101); } finally {session.close(); }   2、Mapper是Service层调用Dao层的接口Mapper只是定义了一系列Service提供服务需要使用的接口不参与接口的实现Mapper接口的实现主要使用了mybatis的SQL功能在mapper.xml中动态定义一些需要使用的SQL语句并执行。Mapper类有SqlSession获得并完成对数据库的一次操作具体如下 SqlSession session sqlSessionFactory.openSession(); try {BlogMapper mapper session.getMapper(BlogMapper.class);Blog blog mapper.selectBlog(101); } finally {session.close(); }   下面附上一个Mapper的简单例子BlogMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceorg.mybatis.example.BlogMapperselect idselectBlog resultTypeBlogselect * from Blog where id #{id}/select /mapper   3、作用域及生命周期 类的作用域与生命周期取决于类在应用的发挥的作用 3.1、SqlSessionFactoryBuilder这个类可以被实例化主要是为了通过配置构造SqlSessionFactory类之后便没有什么作用。故生命周期应为方法作用域只调用一次或少数几次方法完成后自动销毁。 3.2、SqlSessionFactory这个类在应用运行期间为每次请求分配一个Sqlsession进行处理因为客户端请求在应用运行周期内都可能发生故该类的生命周期应为应用的生命周期。一般来说一个应用中值含有一个SqlSessionFactory。 3.3、SqlSession这个类主要在一次请求中构造各个相关的Mapper来为请求服务因此该类的生命周期为一次请求或者方法作用域。并且该类线程不安全因此不能被共享当请求完成响应该类的一次实例的任务也便完成故而应该关闭减少数据库的开销。 3.4、Mapper该类从SqlSession类中获得为SqlSession类服务故该类的生命周期不应大于SqlSession类的生命周期一般Mapper放在方法作用域中在调用它的方法中执行方法结束便自动销毁。   四、XML映射配置文件 mybatis使用配置管理应用是的配置信息与代码分开便于修改以及扩展十分方便。虽然现在注解越来越盛行但xml配置的简单性全局性的优点也是注解无法取代的。 mybatis-config.xml是mybatis的主要配置文件配置项很多但真正用到的却不多。官网下列出的配置项主要有如下几个 1、configuration 配置 1.1 properties 1.2 settings 1.3 typeAliases 1.4 typeHandlers 1.5 objectFactory 1.6 plugins 1.7 environments 1.8 databaseIdProvider 1.9 mappers   2、properties 定义了一些可外部配置且动态替换的属性可以通过子元素的方式配置也可以引入外部的properties文件。这些属性在整个配置文件中可被用来替换需要动态配置的属性值类似于C语言中的宏主要是为了方便修改以及统一配置。 properties resourceorg/mybatis/example/config.propertiesproperty nameusername valuedev_user/property namepassword valueF2Fa3!33TYyg/ /properties dataSource typePOOLEDproperty namedriver value${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}/ /dataSource    值得注意的是properties元素中指定的属性优先级最低。Mybatis中properties的加载顺序如下 在 properties 元素体内指定的属性首先被读取。然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件并覆盖已读取的同名属性。 最后读取作为方法参数传递的属性并覆盖已读取的同名属性。    同时在属性没有找到想要的属性值时可以指定一个默认的属性值默认冒号后面为默认值需要打开一个属性值并可以使用该特征 properties resourceorg/mybatis/example/config.properties!-- ... --property nameorg.apache.ibatis.parsing.PropertyParser.enable-default-value valuetrue/ !-- Enable this feature -- /properties      3、settings 该表现在的设置为mybatis的全局设置可以改变mybatis的运行时行为下面粘上经常使用的配置项其他可以根据需要到官网查找 settingssetting namecacheEnabled valuetrue/setting namelazyLoadingEnabled valuetrue/setting namemultipleResultSetsEnabled valuetrue/setting nameuseColumnLabel valuetrue/setting nameuseGeneratedKeys valuefalse/setting nameautoMappingBehavior valuePARTIAL/setting nameautoMappingUnknownColumnBehavior valueWARNING/setting namedefaultExecutorType valueSIMPLE/setting namedefaultStatementTimeout value25/setting namedefaultFetchSize value100/setting namesafeRowBoundsEnabled valuefalse/setting namemapUnderscoreToCamelCase valuefalse/setting namelocalCacheScope valueSESSION/setting namejdbcTypeForNull valueOTHER/setting namelazyLoadTriggerMethods valueequals,clone,hashCode,toString/ /settings     4、typeAliases 从名字可以知道该标签配置的是Java类型别名主要作用是减少类完全限定名的冗余对于常用的类名进行配置可以带来很多方便特别是在mapper.xml中时。下面附上一个使用的实例 typeAliasestypeAlias aliasAuthor typedomain.blog.Author/typeAlias aliasBlog typedomain.blog.Blog/typeAlias aliasComment typedomain.blog.Comment/typeAlias aliasPost typedomain.blog.Post/typeAlias aliasSection typedomain.blog.Section/typeAlias aliasTag typedomain.blog.Tag/ package namedomain.blog/ /typeAliases   配置上包名时可以在类的上方使用Alias“别名”注解添加别名否则会使用类的首字母小写的非限定类名作为别名eg Alias(author) public class Author {... }     5、mappers 该标签主要用于告诉mybatis去哪里寻找匹配的sql语句通常使用类路径的资源引用或者完全限定资源定位符或者类名及包名等。下面附上两种常用的方式 mappersmapper resourceorg/mybatis/builder/AuthorMapper.xml/mapper resourceorg/mybatis/builder/BlogMapper.xml/mapper resourceorg/mybatis/builder/PostMapper.xml/ /mappers     !-- 将包内的映射器接口实现全部注册为映射器 -- mapperspackage nameorg.mybatis.builder/ /mappers     6.environment mybatis可以配置多种环境有助于将SQL映射应用于多种数据库中。在mybatis-config.xml中可以配置多个environment但是构造SqlSessionFactory时只能指定一种环境可以通过SqlSessionFactory的构造函数传入使用的environment否则使用默认的environment SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, environment); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, environment, properties); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, properties);   下面附上environments的一个实例 environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBCproperty name... value...//transactionManagerdataSource typePOOLEDproperty namedriver value${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment /environments  转载于:https://www.cnblogs.com/hi-dongshen/p/9863274.html
http://www.sadfv.cn/news/257339/

相关文章:

  • 注册网站有什么风险吗常州网站开发
  • 自助建站软件公司电脑上怎么使用wordpress
  • 一个人能建网站吗wordpress 迁移域名
  • 网站建设还好做吗巴彦淖尔市网站制作
  • 中国建设银行网站 个人中国建设监理协会化工监理协会网站
  • 免费推广网站注册入口规划设计公司
  • 做好我局门户网站建设工作衡水建设网站首页
  • 设计师常用的图库网站添加网站到百度
  • 网站内页设计培训机构网站建设要求
  • 网站运营托管微信怎样将网站的内容做
  • 网站建设服务包含内容可以做直播的游戏视频网站
  • 北大青鸟教网站开发吗深圳百度公司地址
  • 柯桥建设局网站网站微信二维码侧边栏漂浮框
  • 建手机网站的平台免费模板
  • 网站界面设计需要首先做市场研究一个主机 多个网站
  • 兴国网站建设网站建设的基础知识
  • 做企业网站备案都需要什么资料网站建设与网站维护
  • 带积分的网站建设长沙网络公司大全
  • 网站建设简介是什么意思做网站搞什么流量
  • 为什么选择做汉服网站没有注册公司可以建网站吗
  • 织梦网站栏目对应首页软件平台架构
  • 怎么请人做网站东莞销售网站建设
  • 广州网站建设 讯度网络城区注册旅游公司网上注册流程
  • 2018年期刊网站建设调查网站优化一般要怎么做
  • 宣讲家网站支部建设wordpress图片上传
  • 网站建设栏目添加重庆网站建设策划
  • 用wordpress搭建的网站中国网站备案信息查询
  • 电子商城平台网站建设做旅游网站能成功
  • ai中如何做网站切图wordpress 调用相册
  • 小型教育网站的开发建设开题报告个人备案网站做购物网站可以不