摘要:
smtp协议:telnet smtp.qq.com 25ehlo kevinauth logineGlhbmdqaWU1NUBxcS5jb20=a2V2aW5feGlhbmc1NQ==mail from:rcpt to:datafrom:to:subject:testxxxxxxxxxxxxxxxxxxxxxxxxxxx.quit邮件生成: public class ImageMail { /** * 带图片的邮件 */ public static void main(String[] args) throws Exception { Session session = Sessio... 阅读全文
摘要:
1.三个域对象的监听(创建和销毁)servletContext, session, request 监听器ServletContext监听器:public class MyServletContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("Context 初始化"); } @Override public void contextDestroyed(S 阅读全文
摘要:
1. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,如下所示:Filter开发分为二个步骤:•编写java类实现Filter接口,并实现其doFilter方法。•在 web.xml文件中使用和元素对编写的filter类进行注册,并设置它所能拦截的资源。(动手实验)Filter链•在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。•web服务器根据Fi 阅读全文
摘要:
1. 1对多,部门--员工 为例, 多的一方建外键。domain,建立bean对象public class Department { private String id; private String name; private Set employees = new HashSet(); public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(Strin... 阅读全文
摘要:
1. 增删改查 常用Handler处理器示例QueryRunner类提供了两个构造方法:•默认的构造方法•需要一个 javax.sql.DataSource来作参数的构造方法。public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理PreparedStatement和ResultSet的创建和关闭。public Object query( 阅读全文
摘要:
1. 原理代码示例public class JdbcPool implements DataSource { private static LinkedList list = new LinkedList(); static{ try{ InputStream in = JdbcPool.class.getClassLoader().getResourceAsStream("db.properties"); Properties prop = new Properties(); prop.load(in); String driver = prop.getProper... 阅读全文
摘要:
1. 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。数据库开启事务命令•start transaction开启事务•Rollback 回滚事务•Commit 提交事务JDBC控制事务语句•Connection.setAutoCommit(false); //start transaction•Connection.rollback(); //rollback•Connection.commit(); //commit设置事务回滚点•Savepoint sp = conn.setSavepoint();•Conn.rollback(sp);•Conn.commit 阅读全文
摘要:
public class Demo4 { /* create table test1 ( id int primary key auto_increment, name varchar(20) ); */ @Test public void test1() { Connection conn = null; PreparedStatement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); String sql = "insert into test1(name... 阅读全文
摘要:
两种批处理方式:采用Statement.addBatch(sql)方式实现批处理:•优点:可以向数据库发送多条不同的SQL语句。•缺点:•SQL语句没有预编译。•当向数据库发送多条语句相同,但仅参数不同的SQL语句时,需重复写上很多条SQL语句。例如: Insert into user(name,password) values(‘aa’,’111’); Insertinto user(name,password) values(‘bb’,’222’); Insertinto user(name,password) values(‘cc’,’333’); Insertinto user(nam 阅读全文
摘要:
1. 往mysql中读写字符文本public class Demo1 { /* 创建数据库 create database LOBTest; use LOBTest; create table testclob ( id int primary key auto_increment, resume text ); */ @Test public void add() { Connection conn = null; PreparedStatement st = null; ResultSet rs = null; try { conn = JdbcUt... 阅读全文