您好,欢迎访问一九零五行业门户网

JDBC 连接MySQL实例详解_MySQL

jdbc连接mysql
jdbc连接mysql
加载及注册jdbc驱动程序
class.forname(com.mysql.jdbc.driver);
class.forname(com.mysql.jdbc.driver).newinstance();
jdbc url 定义驱动程序与数据源之间的连接
标准语法:
::
mysql的jdbc url格式:
jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2]….
示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password 
常见参数:
user                       用户名
password                  密码
autoreconnect                  联机失败,是否重新联机(true/false)
maxreconnect              尝试重新联机次数
initialtimeout               尝试重新联机间隔
maxrows                   传回最大行数
useunicode                 是否使用unicode字体编码(true/false)
characterencoding          何种编码(gb2312/utf-8/…)
relaxautocommit            是否自动提交(true/false)
capitalizetypenames        数据定义的名称以大写表示
建立连接对象
string url=jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password;
connection con = drivermanager.getconnection(url);
建立sql陈述式对象(statement object)
statement stmt = con.createstatement();
执行sql语句
executequery()string query = select * from test;resultset rs=stmt.executequery(query);结果集resultsetwhile(rs.next()){rs.getstring(1);rs.getint(2);}executeupdate()string upd=insert into test (id,name) values(1001,xuzhaori);int con=stmt.executeupdate(upd);execute()
示例:
try{ }catch(sqlexception sqle){}finally{}
java类型和sql类型 技术手册p421
preparedstatement(预编语句)
preparedstatement stmt = conn.preparestatement(insert into test(id,name)values(?,?));
stmt.setint(1,id);
stmt.setstring(2,name);
注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearparameters()方法将他清除为止
callablestatement(预储程序)技术手册p430
jdbc2.0使用
resultset对象中的光标上下自由移动
statement stmt = con.createstatement (resultset.type_scroll_sensitive, resultset.concur_read_only);
resultset rs=stmt.executequery(select * from test);
public statement createstatement(int resultsettype,int resultsetconcuttency) throws sqlexception
resultsettype
type_forward_only 只能使用next()方法。
type_scroll_sensitive 可以上下移动,可以取得改变后的值。
type_scroll_insensitive 可以上下移动。
resultsetconcuttency
concur_read_only 只读
concur_updatable resultset对象可以执行数据库的新增、修改、和移除
直接使用resultset对象执行更新数据
新增数据
statement stmt=con.createstatement(resultset.type_scroll_sensitive,resultset.concur_pudatable);resultset uprs=stmt.executequery(select * from test);uprs.movetoinsertrow();uprs.updateint(1,1001);uprs.updatestring(2,许召日);uprs.insertrow;
更新数据
statement stmt=con.createstatement(resultset.type_scroll_sensitive,resultset.concur_pudatable);resultset uprs=stmt.executequery(select * from test);uprs.last();uprs.updatestring(name,xuzhaori);uprs.updaterow;
删除数据
statement stmt=con.createstatement(resultset.type_scroll_sensitive,resultset.concur_pudatable);resultset uprs=stmt.executequery(select * from test);uprs.absolute(4);uprs.deleterow();
批处理
con.setautocommit(false); 关闭自动认可模式statement stmt=con.createstatement();int[] rows;stmt.addbatch(insert into test values(1001,xuzhaori));stmt.addbatch(insert into test values(1002,xuyalin));rows=stmt.executebatch();con.commit(); 没有任何错误,执行批处理stmt.executebatch();
jndi-数据源(data source)与连接池(connection pool)
tomcat的jdbc数据源设置 技术手册p439
连接池工具-proxool var 0.8.3 技术手册p446
设置web.xml
….servletconfiguratororg.logicalcobwebs.proxool.configuration.servletconfigurator propertyfileweb-inf/classes/proxool.properties1后端统计端口添加下列adminorg.logicalcobwebs.proxool.admin.servlet.adminservlet admin/admin ….
配置proxool.properties
jdbc-0.proxool.alias=jspbookjdbc-0.proxool.driver-class=com.mysql.jdbc.driverjdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db?user=root&password=browser&useunicode=true&characterencoding=utf-8jdbc-0.proxool.maximum-connection-count=10jdbc-0.proxool.prototype-count=4jdbc-0.proxool.house-keeping-test-sql=select current_datejdbc-0.proxool.verbose=truejdbc-0.proxool.statistics=10s,1m,1d 后端统计接口添加此行jdbc-0.proxool.statistics-log-level=debug
使用proxool连接池
connection con = drivermanager.getconnection(proxool.jspbook);statement stmt = con.createstatement(resultset.type_scroll_sensitive, resultset.concur_updatable);string query = select * from employee;resultset rs = stmt.executequery(query);
感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!
其它类似信息

推荐信息