登录界面 Android简单http get请求(含服务器端)四

本讲主要介绍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服务器端代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值