本讲主要介绍jdbc。
封装jdbc工具包
本文数据库采用MySQL,
com.mysql.jdbc.Driver
驱动包下载:
http://www.cr173.com/soft/45333.html
解压后,需在上次服务器端 lib文件夹下添加包:mysql-connector-java-5.1.26-bin.jar
MySQL端口:3306
下载安装过程,含安装包下载地址:
http://www.jb51.net/article/23876.htm
使用navicat创建数据库名称为mydb
navicat是一个可视化的MySQL管理工具,下载链接:
http://www.cr173.com/soft/38153.html
前提是安装有MySQL。
创建的表userinfo(int id主键自增长,varchar(64) username,varchar(64)password)
调用DriverManager.getConnection(urlString, USERNAME, PASSWORD);注册驱动,获取connection
本文的MySQL root的密码是123456,读者根据自己配置时密码自行修改
<pre name="code" class="java">public class JdbcUtils {
private final String USERNAME="root";
private final String PASSWORD="123456";
private final String DRIVER="com.mysql.jdbc.Driver";
private Connection connection;
private PreparedStatement pstmt=null;
private final String urlString="jdbc:mysql://localhost:3306/mydb";
public JdbcUtils() {
try {
Class.forName(DRIVER);
System.out.println("连接成功!!");
} catch (Exception e) {
e.printStackTrace();
}
}
public Connection getConnection()
{
try {
connection=DriverManager.getConnection(urlString, USERNAME, PASSWORD);
System.out.println("注册驱动成功!!");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return connection;
}
public boolean updatePreparedStmt(String sql,List<Object> params) throws SQLException{
boolean flag=false;
int result=-1;
pstmt=connection.prepareStatement(sql);
if((params!=null)&&(!params.isEmpty()))
{
for(int i=0;i<params.size();i++)
{
pstmt.setObject(i+1, params.get(i));
}
}
result=pstmt.executeUpdate();
flag=result>0?true:false;
return flag;
}
}
Class.forName(DRIVER);一句 保证相应的Driver类已经被加载到jvm
connection=DriverManager.getConnection(urlString, USERNAME, PASSWORD);
通过驱动类获取连接
connection.prepareStatement(sql);
是对SQL语句进行预编译
pstmt.setObject(i+1, params.get(i));
第一个参数为占位符,如
(1,liuming) 1为该表userinfo中的属性位置,因而为username:liuming
(2,345) 2为该表userinfo中的属性位置,因而为password 值设置为345
服务器端继续上次的dopost方法中修改
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name=request.getParameter("username");
String password=request.getParameter("password");
if((name!=null)||password!=null)
{
JdbcUtils jbc=new JdbcUtils();
jbc.getConnection();
//SQL插入语句 ?问号为占位符
String sql="insert into userinfo(username,password) values(?,?)";
List<Object>params=new ArrayList<Object>();
params.add(name);
params.add(password);
try {
//更新数据库 sql语句 添加的占位符和具体值
jbc.updatePreparedStmt(sql, params);
} catch (SQLException e) {
e.printStackTrace();
}
}
return;
}
传送门: andriod、iOS服务器端代码