mysql的相关知识

262 阅读4分钟

数据库的包

  1. commons-dbutils-1.4.jar包将对数据库的读、写封装在QueryRunner对象中。但是没有对数据库的事务的操作处理
  2. itcast的包cn.itcast.jdbc.TxQueryRunner对象对包含了对事物的操作。并且里面封装了<threadLocal对象,对多线程的数据库进行管理。在事务操作中可以直接用
try{
    txquery.beginstractiion();:调用con,并放入ThreadLocal《》中
    method1();
    method2();
    txquere.trasactioncommit();
}catch exception  e{
    txquery.rollback();
}


方法二:不用事务的事务的时候
con=getconnnection()获取连接,如果事务开启后,就用哪个连接,如果没有就从资源池中调取以个连接
操作(con);
con.release()。释放,会判断与Thread中的连接相同,如果相同什么都不做,如果不同释放。

  1. 数据库中的数据可以变成map或者javabean对象,map也可以通过函数变成javabean对象如下,commonUtil是apache提供的java包
CommonUtils.toBean(req.getParameterMap(), Customer.class)

4、uuid,根据ip地址、mac地址、时间生成的伪随码,32位不相同。其中itcast的包中包含了。
UUID.randomUUID().toString().replace("-", "").toUpperCase()

web程序的框架:

包组成如下:

  1. com.zhao.xiangmu1.dao:对数据库的操作对象CustomerDao
  2. com.zhao.xiangmu1.domin:数据库中的记录的对象表示,CustomerDomin
  3. com.zhao.xiangmu1.service:业务逻辑处理部分,CustomerService
  4. com.zhao.xiangmu1.servlet:web的control部分,负责业务的转发CustomerDao
  5. jsp:显示接口,与servlet进行交互

分层管理

分层管理简化耦合性,便于维护,便于联合开发。

  • MCV:modole是service、dao、domin,负责业务部分;control指servlet负责业务的转发;view是jsp,显示交互
  • 三层: 数据库部分dao、domin;service业务层;web部分jsp与servlet

分页

查询主要利用mysql的limit 10,2。其他数据库也能实现。

监听器 listener

监听器是对 对象的行为进行检测,并调用预先设置好的方法的行为。几部分组成:

  1. 发生对象
  2. 发生事件
  3. 调用事件 综上:监听器是事件触发的一种行为。监听器需要提前注册,在项目的web.xml中
<listener>
<listener-class>cn.itcast.listener.MyServletContextListener</listener-class>
</listener>
<listener>
<listener-class>cn.itcast.listener.MyHttpSessionListener</listener-class>
</listener>
<listener>
<listener-class>cn.itcast.listener.MyServletRequestListener</listener-class>
</listener>
<session-config>
 <session-timeout>1</session-timeout>
</session-config>
最后面是设置session失效时间时间

生命周期监听器 3个

在对象的创建于销毁的时候调用的对象,里面有两个函数Initialized与Destroyed函数,其中servlet是在tomcat 启动的时候创建,在关闭的时候销毁。可以项目启动的做一些事情,例如创建资源等。session是在调用session对象的时候才创建,request是在请求的时候创建

  1. ServletContextListener
  2. HttpSessionListener
  3. ServletRequestListener

事件对象监听器 3个

在对session、context、request的对象添加、删除、修改属性的时候,会调用的监听器。

  1. ServletContextEvent:ServletContext getServletContext();
  2. HttpSeessionEvent:HttpSession getSession();
  3. ServletRequestEvent:

HttpSessionBindingListener监听器

这个监听器不用注册,主要功能是实现这个接口的对象在加入session与移除session的时候会调用的监听器,这个监听器,不用注册。有两个函数

  1. public void valueUnbound(HttpSessionBindingEvent event)
  2. public void valueBound(HttpSessionBindingEvent event) 相应的对象实现ublic class User implements HttpSessionBindingListener接口即可。

HttpSessionActivationListener监听器

首先session的声明活动如下:

  1. 产生当有调用session对象的时候才产生
  2. 销毁,主动销毁调用invalid。被动销毁,不活动时间超时。或者服务器关闭。
  3. 钝化与活化,服务器的内存考虑。达到


session当服务器关闭的时候会将session对象存放到硬盘上,当再次开启的时候,session会读取。在context.xml中可以关闭session。取消注释
session中的对象如果不实现seriable,在活化的时候不能进行对象的恢复。只有实现了串行化才能写入文件中。

设置session的钝化与活化时间。钝化后咋work中的对目录下生成session。


<Context path="/sql19" docBase="D:\java_temp\jsp\out\artifacts\sql19_war_exploded" >

    <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
        <Store className="org.apache.catalina.session.FileStore" directory="mysession"/>
    </Manager>

</Context>

感知性检测器,不用注册。当session达到一定的时间后。

  1. public void sessionWillPassivate(HttpSessionEvent se):当对象感知被活化时调用本方法;
  2. public void sessionDidActivate(HttpSessionEvent se):当对象感知被钝化时调用本方法;

国际化

国际化主要利用Local对象,property文件中写入不同的值。ResourceBundle对象根据local的值会自动选择。网页中的值,需要从ResourceBundle对象获取。