jsp-2 简单的servlet连接mysql数据库 增删改查
连接mysql数据库的操作 有增删改查
用的包有
commons-lang3-3.5
mysql-connector-java-5.1.40-bin
但是实际上也就是
数据查询和数据处理两种
所以对数据库的操作DAO只有两种方法
- package com.javaweb.dao;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.javaweb.utils.StringUtlis;
import com.javaweb.utils.DBUtlis;
import com.javaweb.utils.DateUtlis;
/*
* 数据库操作类
* */
public class DBDao<T> {
public <T> List<T> findAll(String sql,Class<T> clazz,List<Object> params)throws Exception{
List<T> list = new ArrayList<T>();
Connection conn=DBUtlis.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
Field field=null;
int index=1;
try {
pstmt = conn.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i=0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
rs = pstmt.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
int colsCount= metaData.getColumnCount();
while(rs.next()){
T obj=clazz.newInstance();
for(int i = 0; i<colsCount; i++){
String colsName = metaData.getColumnName(i+1);
Object colsValue = rs.getObject(colsName);
if(colsValue == null){
colsValue = "";
}
try{
field=clazz.getDeclaredField(StringUtlis.camelName(colsName));
}catch(NoSuchFieldException e){
Class clazz1=clazz.getSuperclass();
try{
field=clazz1.getDeclaredField(StringUtlis.camelName(colsName));
}catch(NoSuchFieldException n){
}
}
if(field!=null){
field.setAccessible(true);
if(colsValue instanceof java.sql.Date){
field.set(obj, DateUtlis.getStrDate((Date)colsValue));
}else{
field.set(obj, colsValue);
}
}
}
list.add(obj);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}finally{
DBUtlis.close(conn, pstmt, rs);
}
return list;
}
public int execute(String sql, List<Object> params) {
// TODO Auto-generated method stub
int result = 0;
Connection conn = null;
PreparedStatement ps = null;
int index=1;
try {
conn = DBUtlis.getConnection();
ps = conn.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i=0; i<params.size(); i++){
ps.setObject(index++, params.get(i));
}
}
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
result = -1;
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtlis.close(conn, ps, null);
}
return result;
}
}
补:后来我才发现这玩意应该有高手写到jar包里面的.....
其实里面的意思也不是数据查询和数据操作
而是得到一个结果和多个结果的区别
对数据的Dao的处理
- package com.javaweb.dao;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.lang3.StringUtils;
- import com.javaweb.dao.DBDao;
- import com.javaweb.bean.User;
- public class UserDao {
- private DBDao dao=new DBDao();
- public List<User> findAll(){
- List<User> list=new ArrayList<User>();
- StringBuffer sql=new StringBuffer();
- sql.append(" select id,username,password ");
- sql.append(" from user ");
- try {
- list=dao.findAll(sql.toString(), User.class, null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return list;
- }
- public int add(User User) {
- // TODO Auto-generated method stub
- if(User==null){
- return 0;
- }
- StringBuffer sql=new StringBuffer();
- sql.append(" insert into user(id,username,password) ");
- sql.append(" values(?,?,?) ");
- List<Object> params =new ArrayList<Object>();
- params.add(User.getId());
- params.add(User.getUsername());
- params.add(User.getPassword());
- return dao.execute(sql.toString(), params);
- }
- public int delete(User user) {
- // TODO Auto-generated method stub
- if(user==null){
- return 0;
- }
- StringBuffer sql=new StringBuffer();
- sql.append(" delete from user where id=?");
- List<Object> params =new ArrayList<Object>();
- params.add(user.getId());
- return dao.execute(sql.toString(), params);
- }
- public int update(User user) {
- // TODO Auto-generated method stub
- if(user==null){
- return 0;
- }
- List<Object> params =new ArrayList<Object>();
- StringBuffer sql=new StringBuffer();
- sql.append(" update user set ");
- if(StringUtils.isNoneBlank(user.getUsername())){
- sql.append(" username= ?, ");
- params.add(user.getUsername());
- }
- if(StringUtils.isNoneBlank(user.getPassword())){
- sql.append(" password= ?,");
- params.add(user.getPassword());
- }
- String strSql=sql.toString().substring(0, sql.toString().length()-1)+" where id=? ";
- params.add(user.getId());
- return dao.execute(strSql, params);
- }
- }
User类
- package com.javaweb.bean;
- public class User {
- private String id;
- private String username;
- private String password;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
servlet
- package com.javaweb.action;
- import java.io.IOException;
- import java.util.List;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.lang3.StringUtils;
- import com.javaweb.bean.User;
- import com.javaweb.dao.UserDao;
- public class ServletSql extends HttpServlet{
- /**
- * 用于版本控制
- */
- private static final long serialVersionUID = -2357925750878300415L;
- private UserDao dao=new UserDao();
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // TODO Auto-generated method stub
- doPost(req, resp);
- }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // TODO Auto-generated method stub
- //纯碎是用来判断有没有错误
- req.setCharacterEncoding("UTF-8");
- String op=req.getParameter("op");
- if(StringUtils.isNotBlank(op)){
- if("queryAll".equalsIgnoreCase(op)){
- queryAll(req, resp);
- }else if("add".equalsIgnoreCase(op)){
- add(req, resp);
- }else if("delete".equalsIgnoreCase(op)){
- delete(req, resp);
- }else if("update".equalsIgnoreCase(op)){
- update(req, resp);
- }else{
- }
- }
- }
- private void update(HttpServletRequest req, HttpServletResponse resp) {
- // TODO Auto-generated method stub
- User user;
- try {
- user = init(req,resp);
- user.setId(req.getParameter("id"));
- int rows=dao.update(user);
- if(rows>0){
- queryAll(req, resp);
- }
- } catch (ServletException|IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- private void delete(HttpServletRequest req, HttpServletResponse resp) {
- // TODO Auto-generated method stub
- User user=new User();
- String id=req.getParameter("id");
- user.setId(id);
- int rows=dao.delete(user);
- if(rows>0){
- try {
- queryAll(req, resp);
- } catch (ServletException|IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- public User init(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- User user=new User();
- String id=req.getParameter("id");
- // user.setId(Integer.parseInt(id));
- user.setId(id);
- String name=req.getParameter("name");
- user.setUsername(name);
- String password=req.getParameter("password");
- // user.setPassword(Integer.parseInt(password));
- user.setPassword(password);
- return user;
- }
- public void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- User User=init(req,resp);
- int rows=dao.add(User);
- if(rows>0){
- queryAll(req, resp);
- }else{
- resp.sendRedirect("index.jsp");
- }
- }
- public void queryAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- List<User> list=dao.findAll();
- req.setAttribute("list", list);
- req.getRequestDispatcher("/queryAll.jsp").forward(req, resp);
- // resp.sendRedirect("queryAll.jsp");
- }
- }
有几个方法后接throws ServletException, IOException应该会更加的整洁
.properties文件
- #\u6570\u636e\u8fde\u63a5\u914d\u7f6e
- db.driver=com.mysql.jdbc.Driver
- db.url=jdbc:mysql://localhost:/javaweb
- db.userName=root
- db.password=
DateUtils
- package com.javaweb.utils;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class DateUtlis {
- /**
- * 获取当前日期
- * @return
- */
- public static String getCurrentTime() {
- String returnStr = null;
- SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = new Date();
- returnStr = f.format(date);
- return returnStr;
- }
- public static Date getDate(String strDate){
- Date date=null;
- SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
- try {
- date = f.parse(strDate);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return date;
- }
- public static String getStrDate(Date date){
- String strDate=null;
- SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
- strDate = f.format(date);
- return strDate;
- }
- }
DButils
- package com.javaweb.utils;
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- /**
- * 数据库连接类
- * @author SUMMER
- *
- */
- public class DBUtlis {
- private static String driver;
- private static String url;
- private static String userName;
- private static String password;
- static{
- driver=PropertiesUtil.getProperty("db.driver");
- url=PropertiesUtil.getProperty("db.url");
- userName=PropertiesUtil.getProperty("db.userName");
- password=PropertiesUtil.getProperty("db.password");
- }
- /**
- * 创建数据库连接
- * @return
- */
- public static Connection getConnection() {
- Connection conn = null;
- try {
- Class.forName(driver);
- conn = java.sql.DriverManager.getConnection(url,userName, password);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return conn;
- }
- public static void close(Connection conn, PreparedStatement psm,ResultSet rs) {
- close(rs);
- close(psm);
- close(conn);
- }
- public static void close(Connection conn, Statement st,ResultSet rs) {
- close(rs);
- close(st);
- close(conn);
- }
- public static void close(Connection conn, PreparedStatement psm) {
- close(psm);
- close(conn);
- }
- public static void close(Connection conn) {
- if (null != conn) {
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void close(ResultSet rs) {
- if (null != rs) {
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void close(PreparedStatement psm) {
- if (null != psm) {
- try {
- psm.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void close(CallableStatement proc) {
- if (null != proc) {
- try {
- proc.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- /**
- * @param st
- */
- public static void close(Statement st) {
- if (null != st) {
- try {
- st.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- /**
- * @param conn
- */
- public static void rollback(Connection conn) {
- if(conn != null) {
- try {
- conn.rollback();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- }
- /**
- * @param conn
- * @param auto
- */
- public static void setAutoCommit(Connection conn, boolean auto) {
- if(conn != null) {
- try {
- conn.setAutoCommit(auto);
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- }
- public static void main(String[] args) {
- DBUtlis.getConnection();
- }
- }
propertiesUtils
- package com.javaweb.utils;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Properties;
- /**
- * 读取properties文件
- * @author SUMMER
- *
- */
- public class PropertiesUtil {
- private static Properties prop;
- /**
- * 加载.properties文件,使用文件流
- */
- private static void init() {
- prop = new Properties();
- InputStream is=PropertiesUtil.class.getResourceAsStream("/config/db.properties");
- try {
- prop.load(is);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 获取value
- * @param key
- * @return
- */
- public static String getProperty(String key) {
- if (prop == null ) {
- init();
- }
- return prop.get(key).toString();
- }
- public static void main(String[] args) {
- System.out.println(getProperty("db.driver"));
- }
- }
StringUtils
- package com.javaweb.utils;
- import java.util.UUID;
- /**
- * 字符串处理工具类
- *
- */
- public class StringUtlis {
- /**
- * 获取唯一ID
- * @return
- */
- public static String getUUID() {
- UUID uuid = UUID.randomUUID();
- String str = uuid.toString();
- return str.replace("-", "");
- }
- /**
- * 将驼峰式命名的字符串转换为下划线大写方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。</br>
- * 例如:HelloWorld->HELLO_WORLD
- * @param name 转换前的驼峰式命名的字符串
- * @return 转换后下划线大写方式命名的字符串
- */
- public static String underscoreName(String name) {
- StringBuilder result = new StringBuilder();
- if (name != null && name.length() > 0) {
- // 将第一个字符处理成大写
- result.append(name.substring(0, 1).toUpperCase());
- // 循环处理其余字符
- for (int i = 1; i < name.length(); i++) {
- String s = name.substring(i, i + 1);
- // 在大写字母前添加下划线
- if (s.equals(s.toUpperCase()) && !Character.isDigit(s.charAt(0))) {
- result.append("_");
- }
- // 其他字符直接转成大写
- result.append(s.toUpperCase());
- }
- }
- return result.toString();
- }
- /**
- * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br>
- * 例如:HELLO_WORLD->HelloWorld
- * @param name 转换前的下划线大写方式命名的字符串
- * @return 转换后的驼峰式命名的字符串
- */
- public static String camelName(String name) {
- StringBuilder result = new StringBuilder();
- // 快速检查
- if (name == null || name.isEmpty()) {
- // 没必要转换
- return "";
- } else if (!name.contains("_")) {
- // 不含下划线,仅将首字母小写
- return name.substring(0, 1).toLowerCase() + name.substring(1);
- }
- // 用下划线将原始字符串分割
- String camels[] = name.split("_");
- for (String camel : camels) {
- // 跳过原始字符串中开头、结尾的下换线或双重下划线
- if (camel.isEmpty()) {
- continue;
- }
- // 处理真正的驼峰片段
- if (result.length() == 0) {
- // 第一个驼峰片段,全部字母都小写
- result.append(camel.toLowerCase());
- } else {
- // 其他的驼峰片段,首字母大写
- result.append(camel.substring(0, 1).toUpperCase());
- result.append(camel.substring(1).toLowerCase());
- }
- }
- return result.toString();
- }
- public static void main(String[] args) {
- System.out.println(getUUID());
- }
- }
utils就是工具类了
拿来就用,大多数情况下都有很多高手写jar包含他们
但是我没用那些jar直接上网找的
要求分门别类写,是个好习惯
index.jsp
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();// 获得当前的项目根目录路径
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
- //完整路径
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>这是首页</title>
- </head>
- <body>
- <table border=0 cellpadding=0 cellspacing=0 style="margin:auto;border-collapse:separate; border-spacing:10px;">
- <tr>
- <td>
- <a href="<%=basePath%>/servletSql?op=queryAll">查询全部</a>
- </td>
- </tr>
- <tr>
- <td>
- <a href="<%=basePath%>/add.jsp">添加</a>
- </td>
- </tr>
- <tr>
- <td>
- <a href="<%=basePath%>/delete.jsp">删除</a>
- </td>
- </tr>
- <tr>
- <td>
- <a href="<%=basePath%>/update.jsp">修改</a>
- </td>
- </tr>
- </table>
- </body>
- </html>
add
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();// 获得当前的项目根目录路径
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
- //完整路径
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="<%=basePath%>/servletSql?op=add" method="post">
- <table align="center" border="1">
- <tr>
- <th colspan="3">
- <label>添加信息</label>
- </th>
- </tr>
- <tr>
- <td>Id</td>
- <td>
- <input type="text" name="id" >
- </td>
- </tr>
- <tr>
- <td>用户名</td>
- <td>
- <input type="text" name="name" >
- </td>
- </tr>
- <tr>
- <td>密码</td>
- <td>
- <input type="text" name="password" >
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td>
- <input type="submit" value="保存">
- <input type="reset" value="清空">
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
delete
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();// 获得当前的项目根目录路径
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
- //完整路径
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="<%=basePath%>/servletSql?op=delete" method="post">
- <table align="center" border="1">
- <tr>
- <th colspan="3">
- <label>删除信息</label>
- </th>
- </tr>
- <tr>
- <td>Id</td>
- <td>
- <input type="text" name="id" >
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td>
- <input type="submit" value="保存">
- <input type="reset" value="清空">
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
queryAll
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();// 获得当前的项目根目录路径
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
- //完整路径
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="<%=basePath%>/servletSql?op=delete" method="post">
- <table align="center" border="1">
- <tr>
- <th colspan="3">
- <label>删除信息</label>
- </th>
- </tr>
- <tr>
- <td>Id</td>
- <td>
- <input type="text" name="id" >
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td>
- <input type="submit" value="保存">
- <input type="reset" value="清空">
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
update
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();// 获得当前的项目根目录路径
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
- //完整路径
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="<%=basePath%>/servletSql?op=update" method="post">
- <table align="center" border="1">
- <tr>
- <th colspan="3">
- <label>修改信息</label>
- </th>
- </tr>
- <tr>
- <td>Id</td>
- <td>
- <input type="text" name="id" >
- </td>
- </tr>
- <tr>
- <td>用户名</td>
- <td>
- <input type="text" name="name" >
- </td>
- </tr>
- <tr>
- <td>密码</td>
- <td>
- <input type="text" name="password" >
- </td>
- </tr>
- <tr>
- <td>
- </td>
- <td>
- <input type="submit" value="保存">
- <input type="reset" value="清空">
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
jsp-2 简单的servlet连接mysql数据库 增删改查的更多相关文章
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- java连接mysql数据库增删改查操作记录
1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...
- jsp-3 简单的servlet连接mysql数据库 使用mvc的登录注册
简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
- Python实现mysql数据库增删改查
利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装! 1. 环境配置 安装第三方包 ,导入模块 mysql.connector pip inst ...
- python2.7入门---操作mysql数据库增删改查
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口.Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: G ...
- 安卓版php服务器的mysql数据库增删改查简单案例
界面: index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
随机推荐
- CodeIgniter学习一:基础知识
1. url片段(CI域名组成说明) example.com/index.php/test/index 第一部分(test):控制器 第二部分(index):方法,动作 如果第二部分 ...
- NHibernate 数据查询之QueryOver<T>
NHibernate 数据查询之QueryOver<T> 一.限制运算符 Where:筛选序列中的项目WhereNot:反筛选序列中的项目 二.投影运算符 Select:创建部分序列的 ...
- Mysql高级之主从复制
原文:Mysql高级之主从复制 主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样! 原理: 对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog ...
- Android 简介:Android SDK 和开发框架简介
理解Android软件栈: 库: C/C++库(libc,SSL) Android 运行时可以让Android手机从本质上与一个移动Linux实现区分开来.Dalvik并不是Java虚拟机,是一个基于 ...
- socket计划——一个简单的例子
从一个简单易用TCP样品开始socket计划,的基本过程例如下列: server client +++ ...
- Angularjs 与Ckeditor
Angularjs 与Ckeditor Angularjs 诞生于Google是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块 ...
- [转]How To Use CSS3 Media Queries To Create a Mobile Version of Your Website
CSS3 continues to both excite and frustrate web designers and developers. We are excited about the p ...
- 史上最全的Matlab资源电子书教程和视频下载合集【超级推荐】
收藏吧,网上搜集的,费了老大劲了,推荐给有需要的人,^_^. MATLAB课件2007北京交通大学.zip 4.87 MB A Guide to MATLAB for Beginners an ...
- NUnit详细使用方法
http://www.ltesting.net/ceshi/open/kydycsgj/nunit/ http://nunit.org/index.php?p=download NUnit详细使用方法 ...
- Java字符串转换为日期和时间比较大小
字符串转换为时间: String data = "2014/7/11"; SimpleDateFormat dfs = new SimpleDateFormat("yyy ...