给你一些思路:
1、省市县的数据写到数据库中。每条数据会有一个父ID(上级ID)。
2、在页面上省变动后,查询市的数据以省的ID作为条件,县也一样,以市 的ID为条件。
第二种方法,
由于全国的这些基本上是固定的,一般变动比较少,这可以把这个数据写到JS里面,通过JS来实现。这个加载会快一些。这些数据可以到国家统计局的网站去下载。
用Excel 将省市区排成列 案列拼好sql (insert) 下拉 组装成N条sql语句 插入数据库。
写程序拼sql 打印出sql 执行
使用某些数据库工具如 PLSql 将Excel数据导入到数据库
异步请求,用jquery。
数据在哪无所谓,只是查询的时候加条件,选对应的数据就好。
select from tablename where shengfen =‘选中的省份’
1、在做这个小项目前的准备工作:
11、分析:
由于省、市、县城(区)这些数据是存储到了MySQL数据库中的,我们要通过后台servlet获取数据库中的数据,然后再通过转发或者重定向的方式将数据呈现到前台页面中。
12、需要导入的jar包有:
mysql驱动包:mysql-connector-Java-517-binjar
c3p0数据库连接池:c3p0-0921jar、mysql-connector-java-517-binjar(c3p0依赖包)
前台c标签(需要通过遍历的方式呈现——c:forEach):jstl-102jar、standard-101jar(jstl依赖包)
将集合或者数组转换成json数据格式(Jackson包):jackson-annotations-221jar、jackson-core-221jar、jackson-databind-221jar
前台页面需要用到jQuery,故还需要导入jquery-172js库文件
13、该小项目用到的技术:
jdbc的知识、servlet的知识、jquery的知识、Ajax的知识(局部刷新)、标签的知识、EL表达式的知识、JSP的知识
2、开发过程:
21、准备数据源
创建一个数据库,命名为thereaction并创建三个表——province(省)、city(市)、county(县/区)
22后台开发
创建三个Javabean分别是Province、City、County。(由于太过简单,这里就不粘代码了)
创建Java类和c3p0连接池实现与数据库的连接:DAOjava(实现获取数据库数据的功能)、jdbctoolsjava(实现获取数据库连接、释放连接的功能)、c3p0-configxml
jdbctoolsjava代码如下:
[java] view plain copy
package comxiaojiedao;
import javaioIOException;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javaxsqlDataSource;
import commchangev2c3p0ComboPooledDataSource;
public class Jdbctools {
private static DataSource ds=null;
//数据库连接池应只被初始化一次
static{
ds=new ComboPooledDataSource("helloc3p0");
}
//获取数据库连接
public static Connection getConnection() throws ClassNotFoundException, SQLException, IOException{
return dsgetConnection();
}
public static void shifanglianjie(Connection ct, PreparedStatement ps,ResultSet rs) {
if(rs!=null){
try {
rsclose();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
if(ps!=null){
try {
psclose();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
if(ct!=null){
try {
ctclose();
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
}
DAOjava的代码如下
[java] view plain copy
package comxiaojiedao;
import javaioIOException;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javautilArrayList;
import javautilList;
import comxiaojiebeansCity;
import comxiaojiebeansCounty;
import comxiaojiebeansProvince;
public class DAO {
public List<Province> getprovince(String sql ,Objectargs) throws ClassNotFoundException, SQLException, IOException{
List<Province> provinces=new ArrayList<Province>();
//准备去查数据库
Connection ct=null;
ct=JdbctoolsgetConnection();
Systemoutprintln("获取到数据库的连接了");
PreparedStatement ps=null;
ResultSet rs=null;
ps=ctprepareStatement(sql);
for(int i=0;i<argslength;i++){
pssetObject(i+1, args[i]);
}
rs=psexecuteQuery();
while(rsnext()){
provincesadd(new Province(rsgetInt("province_id"),rsgetString("province_name")));
}
Jdbctoolsshifanglianjie(ct, ps, rs);
return provinces;
}
public List<City> getcity(String sql ,Objectargs) throws SQLException, ClassNotFoundException, IOException{
List<City> cities=new ArrayList<City>();
//准备去查数据库
Jdbctools jt=new Jdbctools();
Connection ct=null;
ct=jtgetConnection();
PreparedStatement ps=null;
ResultSet rs=null;
ps=ctprepareStatement(sql);
for(int i=0;i<argslength;i++){
pssetObject(i+1, args[i]);
}
rs=psexecuteQuery();
while(rsnext()){
citiesadd(new City(rsgetInt("city_id"),rsgetString("city_name")));
}
jtshifanglianjie(ct, ps, rs);
return cities;
}
public List<County> getcounty(String sql,Objectargs ) throws SQLException, ClassNotFoundException, IOException{
List<County> counties=new ArrayList<County>();
//准备去查数据库
Jdbctools jt=new Jdbctools();
Connection ct=null;
ct=jtgetConnection();
PreparedStatement ps=null;
ResultSet rs=null;
ps=ctprepareStatement(sql);
for(int i=0;i<argslength;i++){
pssetObject(i+1, args[i]);
}
rs=psexecuteQuery();
while(rsnext()){
countiesadd(new County(rsgetInt("county_id"),rsgetString("county_name")));
}
jtshifanglianjie(ct, ps, rs);
return counties;
}
}
c3p0-configxml的代码如下:
[html] view plain copy
<xml version="10" encoding="UTF-8">
<c3p0-config>
<named-config name="helloc3p0">
<!-- 连接数据源的基本属性 -->
<property name="user">root</property>
<property name="password"></property>
<property name="driverClass">commysqljdbcDriver</property>
<property name="jdbcUrl">jdbc:mysql:///thereaction</property>
<!-- 若数据库中连接数不足时,一次向数据库服务器申请多少个连接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化数据库连接池时连接的数量 -->
<property name="initialPoolSize">5</property>
<!-- 数据库连接池中的最小的数据库连接数 -->
<property name="minPoolSize">5</property>
<!-- 数据库连接池中的最大的数据库连接数 -->
<property name="maxPoolSize">10</property>
<!-- c3p0数据库连接可以维护的statement的个数 -->
<property name="maxStatements">20</property>
<!-- 每个连接同时可以使用的statement对象的个数 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
创建servletjava 文件
[java] view plain copy
package comxiaojieservlet;
import javaioIOException;
import javalangreflectMethod;
import javasqlSQLException;
import javautilList;
import javaxservletServletException;
import javaxservletannotationWebServlet;
import javaxservlet>
以上就是关于省市县三级联动菜单,JS全国省市县(区)联动,怎样连接到数据库啊全部的内容,包括:省市县三级联动菜单,JS全国省市县(区)联动,怎样连接到数据库啊、sql数据库中有一个省份,市,区的表,。net端显示的下拉列表联动,现在想往里录入数据、asp.net怎么实现无刷新省市区带数据库的三级联动,而且省市区都在一张表中数据库是Sql求大神帮忙解决!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)